Pixora

Pixora 전체 QA에서 재현된 미리보기·새 창·저장 복귀 결함 수정

개발 기록 · 블로그 공개

원본 기록 상태 종료

실제 UI에서 빈 미리보기, 새 작업 창 뒤로 가림, 재컴파일 후 빈 창과 파일 저장 후 포커스 손실을 재현했습니다. 수정 뒤 네이티브 조작으로 재검증했습니다.

작업 결과

검증한 Pixora 결함을 수정하고 동일 조건의 실제 조작 회귀 검사를 통과했습니다. 관련 공통 프레임 변경은 TurnRoom 별도 보고서에 구분했습니다.


변경 내용

재현 조건

Windows / Unity 6000.0.83f1 / Built-in. 혼합 설치 전용 QA 프로젝트와 Pixora 단독 설치 QA 프로젝트에서 실행했습니다.

재현 순서

  1. 2D 데모를 열고 미리보기를 관찰합니다.
  2. 새 Studio를 생성하고 두 창을 교차 클릭합니다.
  3. 비어 있는 Studio를 연 채 도메인 재로드합니다.
  4. PNG 저장 대화상자에서 파일을 저장하거나 Escape로 취소합니다.
  5. 예제 씬을 이미 열린 씬과 함께 엽니다.

기대 동작

맞춤 미리보기가 실제 텍스처를 표시하고, 여러 Studio가 서로 숨지 않으며, 재로드 후 빈 작업 창도 정상 구성되어야 합니다. 파일 대화상자 후 작업 창이 앞에 있고 기존 씬을 보존해야 합니다.

실제 동작

수정 전 실제 텍스처는 존재했지만 ScrollView 내부 viewport/canvas/image 높이가 0이라 빈 화면이었습니다. 새 창 생성 뒤 직전 창이 Unity 기본 창 아래로 밀렸습니다. Unity의 해제된 _source 참조에서 UnassignedReferenceException이 발생했습니다. PNG 저장 뒤 기본 창이 앞에 올라왔습니다.

원인

미리보기 루트 높이와 내부 viewport의 실제 할당 높이가 연결되지 않았습니다. 창 순서 보호는 같은 제품을 제외했고 새 창 생성이 보호 관찰 이전에 발생했습니다. UnityEngine.Object 참조에 C# null 조건 접근을 사용했습니다. 파일 대화상자의 기본 창 활성화를 작업 창으로 복귀시키는 단계가 없었습니다. 소스와 실제 오류·창 순서·레이아웃 값으로 확인했습니다.

적용 내용

루트 GeometryChanged에서 실제 viewport 높이를 연결하고 맞춤 보기의 불필요한 스크롤바를 숨겼습니다. 새 창 생성 직전의 실제 전경/순서를 관찰해 조건에 맞는 직전 창만 보존합니다. Unity 참조는 명시적인 != null 검사로 바꿨습니다. 파일 선택 8곳을 공통 FileDialog로 감싸 작업 창에 복귀시킵니다.

기본 제공 Classic RPG/Modern Pixel 프로필의 남아 있던 디더링 값을 공장 기본값과 같은 0으로 맞춰 원하지 않는 점무늬를 제거했습니다. 명시적으로 지정하는 디더링 기능은 유지합니다. 예제 SceneView 프레이밍과 실제 2×2 입력 프레임 변화도 바로잡았습니다.


검증

72개 부착된 미리보기 경우·408개 검사, 실제 새 창·교차 클릭·복제·개별 닫기·재로드, 파일 저장·취소·7개 임포터 검사와 Additive 씬 열기/프레이밍을 통과했습니다. 10개 씬 Play 실행 중 3개 애니메이션 씬의 Sprite가 실제 바뀌었습니다.

레이아웃 검사 · PNG 임포터 · 실제 Play 실행


남은 사항

Windows / Unity 6000.0.83f1 / Built-in에서 확인했습니다. 다른 운영체제·렌더 파이프라인·고DPI와 모든 외부 모델·셰이더 호환은 미확인입니다. DataTable 제품 소스는 수정하지 않았으며, 이전 작업에서 남은 DataTable 역사적 문서 캡처/소스 해시 불일치 206건은 이번에 통과 처리하지 않았습니다. 제품 브랜치는 codex/turnroom-integration이며 main 병합이나 Asset Store 출시는 수행하지 않았습니다.


개발 화면

수정 전 실제 Unity: 텍스처가 있어도 내부 높이 0으로 빈 미리보기

수정 후 실제 Unity: 어두운 테마에서도 양쪽 맞춤 미리보기를 표시


출처

중앙 아카이브 원문