noname02

Singleton(싱글톤) 객체 만들기 본문

Study/UNITY

Singleton(싱글톤) 객체 만들기

kimtaku 2015. 5. 14. 22:41


1
2
3
4
5
6
7
8
9
10
11
12
13
public static GameManager instance = null;
 
    void Awake()
    {
        if (instance == null)
            instance = this;
 
        else if (instance != this)
            Destroy(gameObject);
 
        DontDestroyOnLoad(gameObject);
 
    }

cs


싱글톤 객체는 1개만 존재하는 객체다.

보통 게임이 시작부터 끝까지 하나만 존재해야 될 객체에 적용시켜주면 된다.


일단 public static으로 해당 객체를 참조할 수 있는 참조변수를 생성한다.

static이므로 class가 많이 생겨도 instance 변수는 하나만 존재한다.


그리고 최초에 해당스크립트를 실행한 GameManager의 주소값을 instance에 저장한다.

만일 GameManager가 여러개 생긴다면, 최초에 실행된 GameManager의 객체주소값이 instance에 들어갈 테고 이는 static변수이기 때문에 모든 객체가 공유하므로 다른객체가 생성되었을 때 해당 객체를 포함하고있는 게임오브젝트를 파괴시킴으로써 스크립트도 파괴될테고 따라서 GameManager는 단 하나만 존재하게 된다.

그리고 이러한 GameManager는 절대 파괴되면 안되는데, 씬이 바뀌면 모든 오브젝트들이 파괴되므로 그것을 방지해주는 DontDestroyOnLoad메서드를 사용해준다.


그리고 이렇게 생성된 싱글톤 객체는 다른 스크립트에서 굳이 GetComponent<GameManager>를 하지 않아도 GameManager.instance~ 로 접근할 수 있다.

'Study > UNITY' 카테고리의 다른 글

모바일 화면 터치 구현하기.  (0) 2015.05.15
Rigidbody2D 옵션  (0) 2015.05.15
플랫폼에 따른 전처리 지시자  (0) 2015.05.15
Coroutine(코루틴) 실용적인 정리.  (0) 2015.05.07
Coroutine  (0) 2015.05.04
Comments