# v0.1.428 — Task #159 P3 critic 후속 정리 (중대 1+3+#2 fix + 사소 정리)

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

---

## 핵심 변경
v0.1.427 critic CONDITIONAL 후속 정리 — 중대 4건 중 3건 + 사소 fix.
### critic 중대 fix
- **#1 _value 이중 쓰기 → setter 경유 통일** (캡슐화 보강)
  - `PointerMoveEvent` drag-scrub: `_value = newValue` + `_tf.SetValueWithoutNotify` → `this.value = newValue`
  - 향후 setter 안 범위 clamp / 단위 변환 추가 시 drag-scrub 경로도 자동 적용
- **#2 _inspectorDragLockSince locked=false 시 리셋** (v0.1.427 코드 fix, v0.1.428 빌드 반영)
  - `_inspectorDragLockSince = locked ? Time.time : 0f` (안전망)
- **#3 _scheduledStyle.Pause() 폐기** (효과 없음 - ExecuteLater(0) 일회성)
  - GC 누적 방지는 GeometryChangedEvent 핸들러가 담당
### critic 중간 fix
- **#1 GetAxisColor 토큰 SSOT 통합**
  - 옛: `new Color(0.95f, 0.35f, 0.40f, 1f)` 하드코딩
  - 신: `.axis-field--{x,y,z} .axis-field-scrub__strip` USS class → `--axis-{x,y,z}-color` 토큰
  - components.uss 3 라인 추가
### critic 사소 fix
- **#1 _axis dead field → public AxisKind property** 노출 (외부 grep/디버깅)
### 잔존 (v0.1.429+)
- 중대 #4 schedule attach 전 호출 → Unity attach 시 deferred = 회귀 0 = docs 명시만
- 중간 #2 applyInputStyle local Action delegate GC → method 추출 (자율 영역)
- 중간 #3 Bootstrap for loop 3항 연산자 → Vector3 indexer (옵션)
- 중간 #4 Axis enum 통합 (AxisFieldElement vs AxisFieldScrubElement) → namespace 공유 enum
## 영향 파일
- Assets/Scripts/UI/AxisFieldScrubElement.cs — 중대 #1/#3 fix + 사소 #1 AxisKind property + GetAxisColor 제거
- Assets/UI/Theme/components.uss — `.axis-field-scrub__strip` USS class 3 라인 추가
- Assets/Scripts/Game/Factory00Bootstrap.cs — _inspectorDragLockSince fix (v0.1.427에 코드만 반영, 본 빌드에 포함)
## 다음 큐
사용자 PC v0.1.427+428 검증 8 시나리오 PASS 응답 → P3-c 완료 → 옛 #if false 영구 제거 (v0.1.429).
