Tracefolio REPORTS & ISSUES
← 모든 기록
턴룸 › Entity Forge버그

Entity Forge 미지원 필터 예외 수정과 행 선택 피드백

진행

필터 변경 시 이전 목록 인덱스로 새 목록을 읽는 예외를 수정했습니다. 왼쪽 전체/미지원 필터, 행 호버·선택 배경과 강조선·대상 경로·키보드 선택을 연결했습니다.

접수→검토→진행→해결→종료

작업 결과

바인더는 목록 생성 시 한 번만 연결하고 매 호출 때 현재 itemsSource에서 범위를 검사해 항목을 가져오도록 수정했습니다. 필터 전환 시 콜백을 교체하지 않습니다. 재사용 해제 시 userData를 비워 이전 행의 클릭 대상이 남지 않게 했습니다.

변경 내용

재현 조건

Unity 6000.0.83f1, Entity Forge Editor. 사용자 스택과 현재 소스로 원인 확인; 화면 조작 제한 유지.

재현 순서

씬 분석 후 기존 미지원만 표시 필터를 켭니다. 기존 전체 목록보다 필터 결과가 적거나 빈 경우 새 콜백이 이전 목록 인덱스로 호출됩니다.

기대 동작

범위 예외 없이 필터 결과를 표시하고 선택한 행과 대상이 명확히 드러납니다.

실제 동작

사용자 로그: ListView.set_bindItem → RefreshItems → BindRows 콜백의 rows[index]에서 ArgumentOutOfRangeException.

원인

BindRows가 새 rows 스냅샷을 캡처한 bindItem을 먼저 지정하고 itemsSource를 나중에 바꿨습니다. bindItem setter가 즉시 기존 source를 다시 바인딩하는 호출 순서가 사용자 스택에 명시돼 있습니다. 따라서 필터로 짧아진 새 rows에 이전 인덱스를 적용했습니다.

적용 내용

멀리 떨어진 미지원 체크박스를 목록 왼쪽의 전체/미지원 필터 버튼으로 교체했습니다. 행 높이는 34px로 통일하고 상태의 두꺼운 배경을 제거했습니다. 호버 배경, 선택 배경과 3px 왼쪽 강조선, 하단 전체 선택 경로를 연결했습니다. 클릭 후 목록 키보드 포커스를 유지하며 Enter/Space로 선택 대상을 찾아갑니다. Entity Forge 창을 유지하고 대상 선택·화면 맞춤을 실행하는 기존 원칙은 유지합니다. 9개 언어 문서와 필터 번역을 갱신했습니다.

기준 UI: 사용자 제공 이전 화면의 오른쪽 미지원 필터와 목록
기준 UI: 사용자 제공 이전 화면의 오른쪽 미지원 필터와 목록

이전 요청에서 제공한 기준 화면을 재사용했습니다. 현재 수정 후 실제 캡처는 화면 조작 제한으로 미확보이며 전후 시각 검증 완료로 표시하지 않습니다.

검증

분리한 .NET 재현 모델에서 이전 캡처 방식은 같은 ArgumentOutOfRangeException을 재현했습니다. 현재 source를 읽는 방식은 전체/빈 목록 100회 교체와 범위 밖 인덱스에서 예외 없이 통과했습니다. 이 검사는 Unity 네이티브 UI 실행이 아닌 호출 순서 모델 검사입니다.

7개 어셈블리를 설치 Unity 참조로 컴파일하고 입력 해시와 마지막 소스를 대조했습니다. 초기 한 번 바인딩, 현재 source 조회/범위 검사, 필터/선택/호버 연결 소스 검사, UI 453키×9언어·치환 인자, 문서 9개/126개 링크 검사와 388개 패키지 원본/메타 byte readback 통과. 검사 JSON

남은 사항

Unity에서 실제 전체→미지원→전체 전환, 분석 진행 중 필터 변경, 스크롤 재사용, 클릭/키보드 선택과 창 유지의 네이티브 검증은 화면 포커스 금지 조건으로 미실행입니다. 실행 검증 전 버그를 resolved/closed로 기록하지 않습니다. 수정 후 캡처와 문서 시각 검증도 보류이며 기존 캡처 해시는 보존합니다. 교훈 검토: 즉시 재바인딩과 현재 데이터 소스 일치 조건은 제품 메뉴얼·재현 검사로 남기며 새로운 전역 규칙은 추가하지 않았습니다.

작업 시간

  • 제안 시간: 10~15분
  • 실제로 완료된 시간: 2026-11-02 19:26:49 KST 시작. 19:31:03 KST 구현·비GUI 검사·패키지 검증 완료(4분14초). 공개 배포 확인 별도. 네이티브 실행 검증 완료 시각 없음.
  • XERJ: 실패 — Xerj.ps1 Status 노드 미실행 확인. rg와 현재 소스, 사용자 스택, 분리 .NET 재현 모델로 대체.
Markdown 원본작성 기준
QA → DISCUSSION → NEXT ACTION

이 보고서의 QA 토론 0

토론 시작
이 프로젝트의 모든 토론 보기 →

자동 복사를 사용할 수 없습니다. 주소를 선택해 직접 복사해 주세요.