금일은 프로젝트로 인해 오늘 알게된 사실을 짧게 서술한다.
프로젝트를 만들면서 싱글톤을 쓸 때 문제가 있었는데 게임 매니저를 싱글톤으로 만들고 게임매니저가 있는 씬을 다시 로드 했을 때 연결해둔 오브젝트들이 다 해재되어 none으로 변하는 현상이다.
이를 방지하기 위해서 좋은 것은 일단 게임 매니저가 있는 씬을 다시 시작하지 않도록 인트로 씬에 넣는 것이다. 이렇게되면 테스트시에 인트로부터 해야한다는 귀찮음은 늘 수 있지만 보다 안전하게 관리할 수 있다.
만일 게임매니저를 싱글톤으로 구현해뒀고 게임매니저가 있는 씬을 재로드한다면 싱글톤은 하나만 존재해야하기에 새로 만들어지는 애가 파괴가 되고 씬에 있던 애들도 파괴가 되기 때문에 연결을 해둔 게임 오브젝트가 파괴되어 의도대로 동작하지 않을 수 있다.
또한 Start나 Awake함수는 싱글톤의 경우 씬을 다시 불러온다고 수행되는게 아니다... 고로 그냥 게임 오브젝트 연결은 게임매니저에선 하지 않고 주로 함수를 담아 놓고 다른 클래스에서 게임 매니저의 함수를 이용하는 식으로 설계하는 것이 좋다.
요약하자면
싱글톤으로 구현한 게임매니저가 있는 씬은 되도록 한 번만 수행되는 인트로 씬에 넣기, 게임오브젝트와 연결은 자제하기, 다른 클래스에서 게임 매니저의 함수를 쓰는 식으로 구현하자는 것이다.