[Unity] 싱글톤의 잘못된 사용 예

APP 2021. 5. 18. 22:30

AI스타일전이 프로젝트 진행중에 에러가 발생했다. 

 

오큘러스 퀘스트 타겟으로 만든 VR컨텐츠이고

 

 고양이를 쓰다듬으면 대화창이 떠야하는데 아무런 반응이 없었다.

 

 

신기한건 오큘러스 링크를 사용해서 유니티 에디터로 실행하면 동작한다는 것이다...

 

이 에러를 잡으려고 두시간 정도 헤메다가 빌드 하고 LogCat을 찍어보니

 

2021-05-18T12:32:22.560Z:error4470/4450 Unity
NullReferenceException: Object reference not set to an instance of an object<br>  at SoundManager.happayNyangSound () [0x00008] in <a50795ddedf54d4a9320c22372e751e0>:0 <br>  at CatCtrl.Instance_TouchCompleteOperate () [0x0000a] in <a50795ddedf54d4a9320c22372e751e0>:0 <br>  at (wrapper delegate-invoke) <Module>.invoke_void()<br>  at DelegateManager.TouchCompleteOperation () [0x0000a] in <a50795ddedf54d4a9320c22372e751e0>:0 <br>  at testTrigger.OnTriggerEnter (UnityEngine.Collider other) [0x00055] in <a50795ddedf54d4a9320c22372e751e0>:0 <br> <br>(Filename: <a50795ddedf54d4a9320c22372e751e0> Line: 0)<br><br>

이 뜨는것을 확인했다.

 

분명 에디터 상에서 인스펙터 Assign을 했는데.. 라고 생각하며

 

스타트함수에 GetComponent<AudioSource>();

 

를 해서 고양이를 쓰다듬으면 대화창이 떴다.

 

하지만 다른 에러가 발생했는데 고양이를 쓰다듬으면

 

OnTriggerEnter가 세번이나 호출되는 것이었다.

 

새벽 세시까지 하다 다음날로 넘겼는데 오늘 다시 보다가 이런걸 찾았다.

 

씬에서 사운드매니저 스크립트를 세개나 쓰고있었다.

 

개발 도중에 싱글톤으로 바꿔서 미처 스크립트를 제거할 생각을 못했던 것이다.

 

오류를 수정하고 빌드해서 플레이 했더니 제대로 동작한다.

 

고생많았따...

 

 

: