이번 프로젝트에서는 싱글톤 매니저의 관리 방식을 다르게 한다. 원래 내가 사용하던 방식은 제네릭 싱글톤 클래스를 만들고, 싱글톤으로 만들어져야 하는 매니저 클래스들이 그 싱글톤 클래스를 상속받는 방식이었다.
이번에는 통합 Managers에서 모든 매니저를 관리해주는 방식을 사용하기로 했다. 이렇게 관리했을 때 매니저 클래스들의 초기화 순서를 지정할 수 있다는 점이 큰 장점으로 느껴졌다. 매니저 클래스를 개별 관리할 때 의존성 순서가 꼬이면 골치아팠기 때문에 이 방식이 마음에 들었다!
using System.Resources;
using UnityEditor.EditorTools;
using UnityEngine;
public class Managers : MonoBehaviour
{
public static Managers Instance { get; private set; }
public static readonly GameManager Game = new();
public static readonly PoolManager Pool = new();
public static readonly ResourceManager Resource = new();
public static readonly SceneManager Scene = new();
public static readonly UIManager UI = new();
public static readonly DataManager Data = new();
private void Awake()
{
if (Instance != null)
{
Destroy(gameObject);
return;
}
Instance = this;
DontDestroyOnLoad(this);
Game.Initialize();
Pool.Initialize();
Data.Initialize();
Scene.Initialize();
}
}
다만 매니저 클래스의 개별적인 테스트가 어렵다는 단점이 있을 수 있다. 프로젝트 특징에 따라 잘 선택하살법.
'프로젝트 일지 > Unity' 카테고리의 다른 글
[Unity/TIL] 방치형 게임에서 유닛 스폰 최적화 구조 설계하기 (0) | 2025.04.14 |
---|---|
[Unity/TIL] MonoBehaviour 상속받지 않는 곳에서 코루틴 사용하는 방법 (8) | 2025.04.11 |
[Unity/TIL] Addressable 연구(2) (2) | 2025.04.09 |
[Unity/TIL] Addressable 연구 (3) | 2025.04.08 |
[Unity/TIL] 트러블슈팅 - 싱글턴 인스턴스에 Action 구독할 때 주의해야 함!!! (0) | 2025.04.02 |