개인과제 중에 날 가장 힘들게 했던 오류는 NullReference였다.
아직 C#과 유니티의 기능의 미세한 차이에 완전히 익숙해지지 못해서 컴포넌트를 선언과 동시에 초기화하기도 하고 가끔은 초기화를 빼먹고선 인스펙터를 한참 뒤져보기도 했다.
대부분의 경우에 있어서 NullReference의 가장 유력한 원인은 잘못된 초기화나 인스펙터 연결이었다.
그리고 원인의 지점과 원인을 빨리 알아내지 못한다면 기능 구현에 써야 할 시간을 오류 검토에 쏟아부어야 한다.
소중한 시간을 날려보내며 디버그 로그가 매우 중요하다는 것을 몸소 느꼈다.

저번 협업 프로젝트에서 사용했던 스크립트를 토대로 Null을 검사할 수 있는 제네릭 클래스를 만들었다.
오류 지점과 원인이 바로 눈에 보이니 오류를 고치는 데 드는 시간이 획기적으로 감소했다.
지금까지 했던 프로젝트는 모두 씬 하나만을 이용했고, 캐릭터를 로비 -> 로딩씬 -> 상점으로 옮기는 방법을 구상하는 건 엄청나게 골치 아픈 일이었다.
플레이어 스크립트를 싱글톤으로 만든다 -> 로딩씬과 미니게임씬에 남아서 없어지질 않는다.
로딩화면과 미니게임에서만 플레이어 싱글톤을 Destroy한다 -> 그럴 거면 싱글톤으로 만든 이유가 없으니 보류
마침 카메라 갱신 때문에 이벤트 메서드를 사용하던 중 실제로 없애는 것보단 없어진 것처럼 보이게 하는 건 어떨까 하는 생각이 들었다.

로딩씬과 미니게임씬에선 오브젝트를 SetActive(false); 하고 다른 씬으로 넘어간 순간 (true);로 바꾸게 했다.