🧩 문제 요약
- 인벤토리 UI를 초기화하는 로직이 2번 호출되었음
- 그 과정에서 Button.onClick.AddListener()도 두 번 호출
- 결과적으로 버튼에 이벤트 리스너가 중복 등록되어, 버튼 클릭 시 메서드가 2번 실행됨
- 특히 일괄 선택/해제 기능에서 비정상 동작(두 번 선택되거나 해제되는 현상)이 발생함
✅ 해결 방법
- AddListener() 전에 기존 리스너 제거 필요
→ button.onClick.RemoveAllListeners() 또는 특정 리스너 제거
button.onClick.RemoveAllListeners();
button.onClick.AddListener(OnClick);
- UI 초기화가 중복 호출되지 않도록 UI 초기화 위치를 명확하게 제어하거나 중복 호출 방지 조건 추가
🤔 느낀점
- 이벤트 등록은 한 번만 실행되어야 함을 명심
- UI 초기화 로직이 언제, 어디서 호출되는지 추적하는 습관이 중요
- 특히 Unity에서는 버튼 리스너 중복 등록으로 인해 디버깅이 어려운 UI 버그가 발생할 수 있으니 주의해야 함