# v0.1.427 — Task #159 P3 Inspector Transform scrubber 모듈화 (AxisFieldScrubElement)

- 버전: v0.1.427
- 날짜: 2026-05-26
- 다운로드: [factory00-windows-x64-v0.1.427.zip](../../downloads/factory00-windows-x64-v0.1.427.zip) (169 MB)
- 캡처: [qa-screenshots/v0.1.427/](../../qa-screenshots/v0.1.427/)

---

## 핵심 변경
사용자 명시 (2026-05-26): "p3 진입"
### P3-a 신설
- `Assets/Scripts/UI/AxisFieldScrubElement.cs` 신규 ~270라인
- EditableVec3Row 5 회기 fix 패턴 모두 1:1 이식:
  - v0.1.132 Unreal 스타일 (3등분 / 왼쪽 정렬 / 컬러 strip)
  - v0.1.165 dragLock (drag 중 closure invalidation 차단) → OnDragLockChanged 콜백
  - v0.1.166 inner-input pickingMode=Ignore default
  - v0.1.167 typingMode flag + originalValueBeforeFocus + frame-delayed CapturePointer (critic 중대 4 fix)
  - v0.1.136 DetachFromPanel scheduledStyle.Pause (GC 누적 차단)
### P3-b Bootstrap 치환
- `Factory00Bootstrap.RenderInspector.EditableVec3Row` 단순화 — 옛 MakeDraggableAxisField 함수 (~200라인 local function) → AxisFieldScrubElement 모듈 3개 호출 (~25라인)
- 옛 코드 `#if false` 마크 (룰 binary-search-code-tracking.md — v0.1.428 + 사용자 PASS 후 영구 제거 예정)
- `_inspectorDragLock` + `_inspectorDragLockSince` setter 콜백 wiring 유지
### 회기 차단 6항 보존
본 모듈에 다음 정밀 race fix 패턴 모두 보존:
1. OnDragLockChanged → _inspectorDragLock = true (외부 closure invalidation 차단)
2. inner-input pickingMode Ignore default
3. typingMode flag (focus 직후 GeometryChanged race 차단)
4. originalValueBeforeFocus (ESC 복원 SSOT)
5. schedule.Execute(0) frame-delayed CapturePointer (TrickleDown 라우팅 충돌 회피)
6. DetachFromPanelEvent scheduledStyle.Pause (schedule GC 누적 차단)
## 사용자 검증 시나리오 (8건 — pre-check.md SSOT)
1. XYZ 라벨 위 drag dx>4px → scrub 모드 + value 갱신
2. TextField click (drag <4px) → focus → 키보드 입력
3. click → 숫자 입력 → Enter → commit + Blur
4. click → 숫자 입력 → ESC → originalValueBeforeFocus 복원 + Blur
5. Shift+drag → sens 0.1 → 0.01 (정밀)
6. RenderInspector 재호출 중 drag → _inspectorDragLock=true → closure 보존
7. scrub 후 Ctrl+Z → TransformCommand Undo + 회전 복원 (v0.1.418)
8. drag 중 cursor 외부 → cursorInside 가드 (v0.1.423)
## 영향 파일
- Assets/Scripts/UI/AxisFieldScrubElement.cs — 신규 ~270라인
- Assets/Scripts/Game/Factory00Bootstrap.cs L5773~ — EditableVec3Row 단순화 (~25라인 신규 + ~200라인 #if false)
## 다음 큐
- 사용자 PC 검증 8 시나리오 PASS/FAIL 응답 의무
- PASS 후 v0.1.428 — `#if false` 옛 코드 영구 제거 + Bootstrap 다른 단순 좌표 입력 위치 (Sensor / Modbus) AxisFieldElement 치환 (P2)
