이벤트 체인 구성한 뒤 Log를 통해 이벤트에 리스너들이 등록이 된 걸 GetInvocationList 메서드로 확인한 후 실제 이벤트를 발생시켰는데 리스너가 하나도 없는 걸로 인식이 될 때
이건 뭔 이상한 버그인가 라고 생각이 들었는데 알고보니
계층구조 내에 두 군데 게임오브젝트에 동일한 해당 스크립트 컴포넌트가 부착되어 있었는데, 하나는 사용을 하지 않을 예정이어서 게임오브젝트를 비활성화를 해놨는데, 게임오브젝트가 비활성화 되어있음에도 불구하고, 두 스크립트가 모두 실행이 되어서 실제 사용하는 스크립트에서는 이벤트 초기화가 정상적으로 되었음에도 불구하고, 비활성화 되어있던 게임오브젝트에 있는 스크립트가 OnEnable 메서드가 호출이 되지 않아서 초기화가 되지 않은 상태에서 이 엉뚱한 이벤트가 트리거가 되면서 이벤트에 리스너가 하나도 없는 걸로 인식이 되었다.
조금 더 테스트를 해보니, 기존 싱글톤 패턴으로 사용했을 때에는 게임오브젝트가 비활성화 되어있으면 내부의 스크립트가 당연히(?) 실행이 되지 않아서 이런현상이 생기지 않았는데, DI 플러그인 Zenject 를 사용하면 이런현상이 발생한다.
결론은 Zenject 버그인걸로 판단이 된다.
선택은 둘 중 하나다. Zenject를 사용하지 않든지 아니면 이런 현상을 알고 사용하든지 Signal Bus를 사용하면 괜찮지 않을수도 있겠다는 생각은 들기도 하지만, 수정하기 전 기존 소스코드(이벤트쪽)는 여전히 문제가 생기니 확인이 필요하다.
일단 지금 당장은 사용하지 않는 스크립트는 모조리 삭제를 해야겠다.
두더지게임: 리마스터 무료 게임쿠폰
두더지게임: 리마스터 무료 게임쿠폰 "여러분 공짜 쿠폰입니두더지!!" 구글플레이스토어에서만 됩니두더지! 애플 앱스토어는 정책상 안됩니두더지! 10만골드 2024 20만골드 새해복 30만골드 가족 4
ssscool.tistory.com
[무료게임쿠폰] 두더지게임: 리그 오브 두더지
[무료게임쿠폰] 두더지게임: 리그 오브 두더지 구글플레이스토어 쿠폰사용 O, 앱스토어 쿠폰사용 X (앱스토어 정책상) 10만골드 가족 20만골드 건강 30만골드 자유 40만골드 행복하자 50만골드 아프
ssscool.tistory.com
[무료게임쿠폰] 방구키우기: 리그 오브 방구 타이밍 배틀
[무료게임쿠폰] 방구키우기: 리그 오브 방구 타이밍 배틀 구글플레이스토어 쿠폰사용 O, 앱스토어 쿠폰사용 X (앱스토어 정책상) 2022년 07월 29일 이후 업데이트버전 v.1.200.78 이후 버전으로 업데이
ssscool.tistory.com
[무료게임쿠폰] 뽑기 키우기: 리그 오브 뽑기
[무료게임쿠폰] 뽑기 키우기: 리그 오브 뽑기 다이아 100개 쿠폰 테슬라 다이아 200개 쿠폰 건강 다이아 300개 쿠폰 부자 다이아 400개 쿠폰 행복 다이아 600개 쿠폰 자유 다이아 700개 쿠폰 휴식 다이
ssscool.tistory.com
똥 피하기: 리그 오브 똥 - Google Play 앱
이 재미있는 가족 친화적인 게임에서 똥을 피하세요! 깨끗하게 유지하며 즐기세요!
play.google.com
'Unity' 카테고리의 다른 글
UnityEvent와 Action Delegate 의 차이 (1) | 2024.03.27 |
---|---|
젠젝트(Zenject)를 사용한 후 콘솔창에 버그가 생긴 듯 (0) | 2024.03.25 |
유니티 Color() 변화가 없을 때 (1) | 2024.03.20 |
ZenjectException: Unable to resolve 'HPManager' while building object with type 'DataManager'. Object graph:DataManager (0) | 2024.03.20 |
유니티 부모 오브젝트, 자식 오브젝트 레이어 셋팅과 Rigidbody 2D 유뮤에 따른 상호작용 (2) | 2024.03.14 |