시작하기
파괴되지 않는 스크립트나 전역으로 사용 되는 스크립트를 관리하기 위한 패턴 (이라고 기억하고 사용하는 중)
소스 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | public class MySingletonClass : MonoBehaviour { private static MySingletonClass s_instance; public static MySingletonClass Instance { get { if (s_instance != null) return s_instance; s_instance = FindObjectOfType<MySingletonClass>(); if (s_instance != null) return s_instance; Create(); return s_instance; } } public static void Create() { MySingletonClass PrefabCreate = Resources.Load<MySingletonClass>("SavePrefabName"); s_instance = Instantiate(PrefabCreate); } private void Awake() { if (Instance != this) { Destroy(gameObject); return; } DontDestroyOnLoad(gameObject); } } | cs |
위 코드는 파괴되지 않는 스크립트에 싱글톤 패턴을 적용 시킨 것이다.
사용 후 파괴는 스크립트의 경우
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | public class MySingletonClass : MonoBehaviour { private static s_instance; public static Instance { get { if (s_instance != null) return s_instance; s_instance = FindObjectOfType<MySingletonClass>(); if (s_instance != null) return s_instance; Debug.Log("No"); return null; } } } | cs |
로 간소화 시킬 수 있다.
'IT_플밍' 카테고리의 다른 글
[C#, Unity3D] Invoke (0) | 2018.09.18 |
---|---|
비공식 Google Camera HDR+ 설치하기 (3) | 2018.08.07 |
Cat5 랜선은 기가비트(500mb) 를 지원하지 않는다. (0) | 2017.12.21 |
[이산수학] 명제 (0) | 2017.12.18 |
[UE4] 언리얼 엔진4를 이용하여 360 ° 동영상 만드는 법 (0) | 2017.12.12 |