팔레트 화면 변경 이벤트의 반복 재생성 차단
개발 기록 · 블로그 공개
원본 기록 상태 해결
팔레트 화면 구성 중 중복 이벤트가 CreateGUI를 반복 호출하던 오류를 차단하고 에디터를 복구했습니다.

작업 결과
중복·하위 이벤트를 반환 처리하고 실제 팔레트 변경만 지연 재구성하도록 수정했습니다. 취소 요청 전 실제 창에서 톤 적용과 해제 동작을 확인했으며 이후 최종 코드의 배치 검사도 통과했습니다.
변경 내용
재현 조건
Windows / Unity 6000.0.83f1 / Pixora 팔레트 탭.
재현 순서
팔레트 탭에서 해상도·팔레트·ColorField를 포함한 화면을 구성합니다. 수정 전 로그의 ChangeEvent<string> → BuildSettings → CreateGUI 스택이 재진입했습니다.
기대 동작
실제 설정값이 바뀔 때만 화면을 다시 구성하고 사용자 입력에 응답합니다.
실제 동작
수정 전 busy 상태와 재귀 이벤트 깊이 495까지의 반복 스택을 확인했습니다.
원인
PopupField 콜백이 이벤트 대상과 현재 값을 구분하지 않고 즉시 CreateGUI를 호출해 구성 중 변경 이벤트가 재진입했습니다. 실행 로그와 콜백 소스를 대조했습니다.
적용 내용
해상도·팔레트 콜백에서 하위 요소 이벤트와 동일 선택을 무시합니다. 팔레트의 실제 변경은 스케줄러를 통해 구성 이후 처리합니다. 멈춘 Pixora 프로세스만 복구했으며 다른 프로젝트 에디터는 유지했습니다.
검증
수정 후 실제 창에서 보정 해제 → 원래 색감 복귀 → 참고 톤 재적용을 확인했습니다. 이는 사용자가 컴퓨터 유즈를 취소하기 전에 수행한 기존 버튼 검증입니다. 이후 새 공통 톤·줌 구현에 대한 검증과 구분합니다. 최종 코드의 Unity 배치 검사는 전용 403개와 기본 88개가 통과했습니다.
남은 사항
다른 Unity 버전의 이벤트 동작은 미확인입니다. 원본 에디터 로그 대신 재현 스택과 수정·검증 내용을 요약했으며 새 줌 화면 직접 조작은 취소 요청으로 실행하지 않았습니다.