---
title: 팔레트 화면 변경 이벤트의 반복 재생성 차단
date: 2026-10-29T13:22:49.879Z
version: v1.0.0
status: 해결
state: verification
project: pixora
type: 버그
report_kind: bug
category: 버그 추적
summary: 팔레트 화면 구성 중 중복 이벤트가 CreateGUI를 반복 호출하던 오류를 차단하고 에디터를 복구했습니다.
format: tracefolio-v2
priority: normal
severity: normal
reporter: 미기록
assignee: 미지정
workflow: resolved
payload: ../assets/submissions/2026-10-29-bug-20261029132249879-v1.0.0.json
---

## 작업 결과

중복·하위 이벤트를 반환 처리하고 실제 팔레트 변경만 지연 재구성하도록 수정했습니다. 취소 요청 전 실제 창에서 톤 적용과 해제 동작을 확인했으며 이후 최종 코드의 배치 검사도 통과했습니다.

## 변경 내용

### 재현 조건

Windows / Unity 6000.0.83f1 / Pixora 팔레트 탭.

### 재현 순서

팔레트 탭에서 해상도·팔레트·ColorField를 포함한 화면을 구성합니다. 수정 전 로그의 ChangeEvent<string> → BuildSettings → CreateGUI 스택이 재진입했습니다.

### 기대 동작

실제 설정값이 바뀔 때만 화면을 다시 구성하고 사용자 입력에 응답합니다.

### 실제 동작

수정 전 busy 상태와 재귀 이벤트 깊이 495까지의 반복 스택을 확인했습니다.

### 원인

PopupField 콜백이 이벤트 대상과 현재 값을 구분하지 않고 즉시 CreateGUI를 호출해 구성 중 변경 이벤트가 재진입했습니다. 실행 로그와 콜백 소스를 대조했습니다.

### 적용 내용

해상도·팔레트 콜백에서 하위 요소 이벤트와 동일 선택을 무시합니다. 팔레트의 실제 변경은 스케줄러를 통해 구성 이후 처리합니다. 멈춘 Pixora 프로세스만 복구했으며 다른 프로젝트 에디터는 유지했습니다.

## 검증

수정 후 실제 창에서 보정 해제 → 원래 색감 복귀 → 참고 톤 재적용을 확인했습니다. 이는 사용자가 컴퓨터 유즈를 취소하기 전에 수행한 기존 버튼 검증입니다. 이후 새 공통 톤·줌 구현에 대한 검증과 구분합니다. 최종 코드의 Unity 배치 검사는 전용 403개와 기본 88개가 통과했습니다.

[전용 검사](../assets/common-tone-v2/CommonToneVerification.json) · [기본 검사](../assets/common-tone-v2/Verification.json) · [코드 커밋](https://github.com/MDJ0126/Pixora/commit/f7a9da45d69c0dafe58bcffa2015f2760ce169dd)

## 남은 사항

다른 Unity 버전의 이벤트 동작은 미확인입니다. 원본 에디터 로그 대신 재현 스택과 수정·검증 내용을 요약했으며 새 줌 화면 직접 조작은 취소 요청으로 실행하지 않았습니다.

## 작업 시간

- 제안 시간: 최초 20~35분. 사용자 의도 정정과 줌 요청에 따라 추가 수정·검증 15~25분을 제시했습니다.
- 실제로 완료된 시간: 시작 2026-10-29 21:34:10 KST. 최종 배치 검증 22:17 KST, 프로젝트 푸시 22:21 KST 완료. 보고서 생성 2026-10-29T22:22:49+09:00, 전체 경과 48분 39초. 새 줌 UI 직접 조작은 취소 요청에 따라 미실행이며 공개 배포는 후속 Actions로 확인합니다.
- XERJ: 실패 — Xerj.ps1 Status가 XERJ node is not running으로 실패해 rg·현재 소스·실행 검증으로 대체했습니다.
