공부/유니티

유니티, 매번 컴포넌트에 스크립트를 끌어 놓기 귀찮을 때 : 싱글톤

림피 2022. 7. 25. 12:28

우리는 흔히 유니티에서 오브젝트를 사용할 때,

 

이렇게 새로 선언을 해주고

 

또 이렇게 스크립트 컴포넌트에 생긴 빈 곳에다 오브젝트를 끌어다 놓고 사용한다.

 

근데 이건 참 번거로운 방식이 아닐 수 없다.

 

그래서 싱글톤이라는 코드 디자인 패턴을 자주 사용한다.

 

내 코드 아님. 보고 따라쓴거다.

특이점이라면 static 이란 키워드를 붙인다는거다.

static의 특징은 단 하나만 존재하고 어디서든 쓸 수 있는거라는데 뭐 대충 그렇게 알고 넘어가자.

 

저 코드를 써주면 이렇게 다른 스크립트에서도 클래스명만 쓰고 바로 접근할 수 있다.

단, 싱글톤 함수인 GetInstance()를 거쳐서.

만약 안 거치면 어떻게 될까?

 

거치지 않으면 이런 오류 메세지가 뜬다. 여기서 중요한 부분은 "static이 아닌", "개체 참조가 필요"

우리가 맨날 클래스 이름 변수명으로 지정해놓고 에디터에서 끌어다 쓰고 그랬던게 개체참조라는거다.

 

근데 이 코드.. 이해되는가? 솔직히 난 안 된다.

보고 있던 친구 : 나 알아

 

친구의 해석에 의하면

상기했듯 static으로 선언한 것은 단 하나만 존재하기 때문에

instance로 딱 하나뿐인 값을 만들어서

비어있을 경우 instance = FindObejctOfType<DataController>(); DataConroller라는 스크립트가 붙은

게임 오브젝트를 Hierarcky창에서 찾아서 instance창에 붙여넣어준다.

그래도 없을 경우 DataConroller라는 스크립트가 있는 오브젝트가 없다는 뜻이므로

아예 DataConroller란 이름의 게임 오브젝트를 만들어서 컴포넌트까지 붙이는거다.

 

'공부 > 유니티' 카테고리의 다른 글

개초보의 Unity 인벤토리 만들기 💖_ 00  (1) 2022.06.14