GameDevelop/Unity팀프로젝트

여러 오브젝트가 각각 말풍선을 띄울 때 싱글톤 쓰면 안 되는 이유

도도돋치 2025. 8. 4. 21:13
Contents 접기
728x90

구현목표

유니티에서 여러 캐릭터(예: 새)가 각각 말풍선을 띄우는 연출을 만들 때 Singleton(싱글톤)을 사용해서 말풍선 매니저를 구성하려고 했다.

하지만, 여러 오브젝트가 각각 말풍선을 제어해야 하는 경우 싱글톤은 오히려 쓰면 안된다.

 

 

싱글톤 사용문제

public static PinchBirdSpeech Instance는 씬에 오직 하나의 객체만 존재한다는 전제에서만 안전하게 동작한다.

하지만 새가 여러 마리 있다면?

  • 각 새마다 PinchBirdSpeech 스크립트를 붙이게 되고
  • 결국 마지막에 생성된 하나만 살아남고, 나머지 인스턴스는 덮어씌워져버린다.

결과적으로 ShowDialogue()를 호출해도 항상 마지막 새만 반응하는 오류가 생기게 되었다.

 

 

해결방안

멀티 캐릭터가 각각 말풍선을 제어하는 경우, Singleton보다는 직접 참조하는 방식이 필요하다.

 

> Instance는 지우고, 인스펙터 연결을 하여 해결하였다.

 

728x90