-
Unity Singletone (단순 or MonoBehavior)
singletone이 많이 쓰이는 경우는 GameMgr를 만들어 게임시작, 일시정지 등 게임의 흐름을 관장하는 경우가 있다.
C# Singletone
Unity - singleton pattern (static, global)
public class GameMgr { //public static GameMgr gThis; public static GameMgr gThis { get { if(null == gThis) { gThis = new GameMgr(); } return gThis; } }
Monobehaviour사용 singletone
Monobehaviour를 사용하면 Unity의 기본 event를 받을 수 있는 장점이지만 복잡성이 증가해 의도하지 않는 동작이나 자원낭비가 심해지지 않도록 주의 해야한다.
public class GameMgr : MonoBehaviour { private static GameMgr gThis = null; void Awake() { if (null == gThis) { gThis = this; DontDestroyOnLoad(this.gameObject); } else { //만약 Scene이동 되어 새 Scene에도 Hierarchy에 GameMgr가 만들어 질 수 있다. //중복일 경우 처리를 해줘야한다. 여기서는 기존 것만 살려두는 방법으로 한다. Destroy(this.gameObject); } } }
'Unity' 카테고리의 다른 글
Unity Error Microsoft (R) Visual C# Compiler version (0) 2021.07.18 Unity Ui ToggleGroup (1) 2021.04.02 Unity Ui Toggle (0) 2021.04.02 Unity Ui InputField (0) 2021.04.02 Unity - 목적지로 위치 이동 (0) 2021.04.02 Unity Ui Effect (0) 2021.03.28 Unity Ui Mask (0) 2021.03.28 Unity - Meshes, Materials, Shaders, Textures (0) 2021.03.27