우리는 흔히 유니티에서 오브젝트를 사용할 때,
이렇게 새로 선언을 해주고
또 이렇게 스크립트 컴포넌트에 생긴 빈 곳에다 오브젝트를 끌어다 놓고 사용한다.
근데 이건 참 번거로운 방식이 아닐 수 없다.
그래서 싱글톤이라는 코드 디자인 패턴을 자주 사용한다.
특이점이라면 static 이란 키워드를 붙인다는거다.
static의 특징은 단 하나만 존재하고 어디서든 쓸 수 있는거라는데 뭐 대충 그렇게 알고 넘어가자.
저 코드를 써주면 이렇게 다른 스크립트에서도 클래스명만 쓰고 바로 접근할 수 있다.
단, 싱글톤 함수인 GetInstance()를 거쳐서.
만약 안 거치면 어떻게 될까?
거치지 않으면 이런 오류 메세지가 뜬다. 여기서 중요한 부분은 "static이 아닌", "개체 참조가 필요"
우리가 맨날 클래스 이름 변수명으로 지정해놓고 에디터에서 끌어다 쓰고 그랬던게 개체참조라는거다.
근데 이 코드.. 이해되는가? 솔직히 난 안 된다.
보고 있던 친구 : 나 알아
친구의 해석에 의하면
상기했듯 static으로 선언한 것은 단 하나만 존재하기 때문에
instance로 딱 하나뿐인 값을 만들어서
비어있을 경우 instance = FindObejctOfType<DataController>(); DataConroller라는 스크립트가 붙은
게임 오브젝트를 Hierarcky창에서 찾아서 instance창에 붙여넣어준다.
그래도 없을 경우 DataConroller라는 스크립트가 있는 오브젝트가 없다는 뜻이므로
아예 DataConroller란 이름의 게임 오브젝트를 만들어서 컴포넌트까지 붙이는거다.
'공부 > 유니티' 카테고리의 다른 글
개초보의 Unity 인벤토리 만들기 💖_ 00 (1) | 2022.06.14 |
---|