본문 바로가기
Unity

[Unity3D] 싱글톤 (MonoSingleton)

by Aducssini 2019. 5. 16.

유니티로 무언가 만들기로 한다음부터 무척이나 많은걸 배우고 있다.

 

확실히 기획자와 프로그래머를 나누는 이유가 있었던 듯 하다.  

 

당사자들은 아무렇지도 않은 것처럼 이야기들하지만, 

 

무엇보다 어느정도 프로그래머들의 이야기를 알아듣기까지 정말 오랜 시간이 걸린듯 하다. 

 

아니면 그냥....  내가 느린것인가.. 

 

 

 

어느 상태에서든 접근하기 쉬워야하는 클레스나 데이터를 만들어야만 할 때, 사용하는 싱글턴.

 

많은 싱글턴 방식이 있지만, 유니티에 가장 적합한 방식이 이것인것 같아 넣어둔다.

 

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
using UnityEngine;
using System.Collections.Generic;
 
public abstract class MonoSingleton<T> : MonoBehaviour where T : MonoSingleton<T>{
 
    protected static T _instance = null;
    public static T Instance
    {
        get
        {           
            if (_instance == null)
            {
                _instance = GameObject.FindObjectOfType(typeof(T)) as T;
 
                if (_instance == null)
                    _instance = new GameObject(typeof(T).ToString()).AddComponent<T>();                                        
            }
            return _instance;
        }
    }
 
    protected void Awake(){ _instance = this.transform.GetComponent<T>(); }
    public virtual void Init(){}
    public virtual void Destroy(){ Destroy(this);}
 
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5; text-decoration:none">Colored by Color Scripter
 

'Unity' 카테고리의 다른 글

[Unity3D] Random.Range 범위  (0) 2019.06.14
[Unity3D] 게임 저장은 Json을 쓰기로...  (0) 2019.05.22
[Unity3D] C# CSV 사용법  (0) 2019.05.16
[Unity3D] Pixel Perfect 공식  (0) 2019.05.15
[Unity3D] 저장 경로  (0) 2019.05.15