게임 개발 · 기술 동향미로의 개발노트
카테고리

턴룸 · TurnRoom

공통 창 목록·리본·재로드·포커스의 실제 UI 회귀 수정

개발 기록 · 블로그 공개

원본 기록 상태 종료

DataTable 기반 공통 UI를 유지하면서 창 목록 가림·테마 불일치·재로드 초기화 오류·리본 줄바꿈과 Pixora 다중 창 순서를 수정했습니다. 혼합·단독 설치를 실제 조작으로 확인했습니다.

수정 전 실제 Unity 공통 창 목록: 기본 테마 컨트롤 혼용
수정 전 실제 Unity 공통 창 목록: 기본 테마 컨트롤 혼용

작업 결과

공통 창 프레임과 UI Toolkit 템플릿의 재현된 결함을 수정했습니다. DataTable의 제품 소스·기존 IMGUI 편집 엔진·문서 닫기 정책은 수정하지 않았습니다.

재현 조건

Windows / Unity 6000.0.83f1 / Built-in. DataTable+Pixora 혼합 설치와 Pixora 단독 설치, 라이트/다크 테마.

재현 순서

  1. 두 제품을 열고 교차 클릭합니다.
  2. Pixora 새 창을 추가해 같은 제품의 두 창을 클릭합니다.
  3. 최소화 후 TurnRoom > Windows에서 복원합니다.
  4. 재컴파일 직후 UI Toolkit 창을 다시 그립니다.
  5. 영어 리본과 다크 모드 설정의 선택 항목을 관찰합니다.

기대 동작

선택한 도구 창이 앞에 있고 직전 보이는 도구도 기본 창 뒤로 숨지 않아야 합니다. 공통 목록이 조작 가능하고 동일한 템플릿·아이콘·제목줄을 사용해야 합니다. 재로드 초기화와 리본 글자, 선택 상태가 읽혀야 합니다.

실제 동작

수정 전 공통 목록은 전경 상태인데도 실제 DataTable 아래에 가려졌고 기본 다크 컨트롤과 라이트 배경이 섞였습니다. 같은 Pixora 창은 순서 보호에서 제외됐습니다. 재로드 직후 EditorStyles.label 초기화 전에 접근한 예외가 확인됐습니다. 영어 리본은 단어 중간이 분리됐고 다크 선택 글자 대비가 낮았습니다.

원인

공통 목록이 기존 utility GetWindow 경로를 사용해 도구 창과 다른 소유/표시 방식을 썼습니다. WindowFocus가 같은 ProductId를 제외하고 DataTable 선택 호스트에만 의존했습니다. UI Toolkit의 초기 그리기 시점에 IMGUI EditorStyles가 준비되어 있다고 가정했습니다. 리본이 자동 글자 줄바꿈을 허용했고 어두운 표면에 원래 강조색을 그대로 사용했습니다.

적용 내용

WindowList를 공통 ToolWindow·ShowPopup·공통 제목줄/크기 조절·아이콘/버튼으로 구성했습니다. 같은 제품 보호는 Pixora에만 확장해 기존 DataTable↔DataTable 정책을 유지합니다. DataTable의 선택 호스트가 있으면 위임하고 없으면 같은 프로세스·정확한 제목·유일한 Unity 기본 창을 확인하는 Windows 경로를 사용합니다. 최소화·이미 숨은 창이나 다른 앱을 일괄 앞으로 가져오지 않습니다.

EditorStyles 대신 실제 builtin inspector skin을 사용해 재로드 초기화를 보장합니다. 리본은 단어 경계에서 최대 두 줄로 나누고 글자 중간 자동 줄바꿈을 막습니다. 다크 선택 글자는 표면에 맞춘 accentInk를 사용합니다. 파일 대화상자 복귀도 공통 프레임의 별도 함수로 모았습니다.

남은 사항

83f1 / Built-in에서 확인했습니다.

개발 화면

수정 전 실제 Unity 공통 창 목록: 기본 테마 컨트롤 혼용

수정 후 실제 Unity 공통 창 목록: Pixora 단독 설치에서도 같은 프레임과 복원 목록

출처

중앙 아카이브 원문

같은 카테고리의 글

개발 기록 아카이브 전체 보기 ↗