본문 바로가기

Unity/Tips 13.05.06

[ 유니티(Unity 3D) 팁 ] Singleton 구현 및 사용법

유니티에서 Singleton 사용


유니티에서는 스크립트가 오브젝트의 컴포넌트로 사용되기 때문에 

오브젝트 없이는 스크립트를 사용할 수 없다.

하지만 싱글턴 패턴을 사용하면 스크립트를 오브젝트의 컴포넌트로 연결시키지 않고도 사용할 수 있다.

주로 무언가를 관리하는 매니저 클래스를 구현할때 사용한다.




코드


public class StateManager: MonoBehaviour {

  // 싱글턴 클래스를 구현한다.

private static StateManager instance; // private static 으로 선언 ( 중요 ).

public static StateManager Instance  // public static 으로 선언 ( 중요 ).

{

get  // set 이 아닌 get 이다 !

{

if(instance == null)

{

instance = new StateManager ();

}

return instance;

}

}


  // 멤버 변수

  privateint State;


 // 멤버 함수

 public SetState( int state ){

     State = state;

 }

}


// 외부 스크립트에서 사용 예시

public class Class1: MonoBehaviour {

void Start(){

StateManager.Instance.SetState( 1 );

}

}




참고 사이트


http://clairehyunjunglee.blogspot.kr/2012/12/singleton-in-c.html

http://wiki.unity3d.com/index.php?title=Singleton#Generic_Based_Singleton_for_MonoBehaviours