# v0.1.256 — QA-056 hide 부품 raycast 관통

- 버전: v0.1.256
- 분류: 48th stable seal (v0.1.366) 일괄 봉인 사이클
- 다운로드: [factory00-windows-x64-v0.1.256.zip](../../downloads/archive/factory00-windows-x64-v0.1.256.zip) (archive 보존)
- 캡처: [qa-screenshots/v0.1.256/](../../qa-screenshots/v0.1.256/)

---

## 협업자 PM 회신
QA-056 [P1] — hide 처리된 오브젝트 뒤 보이는 오브젝트 클릭 선택 불가. hide 부품의 Collider가 raycast를 차단.

## root cause 확정
PickPartUnderMouse() L4032:`csharpif (Physics.Raycast(ray, out var hit, 1e5f))
{
    ...
    if (IsPartHidden(pp)) return null;   //     return pp;
}
`Physics.Raycast는 가장 가까운 1 hit만 반환. hidden 부품에 hit하면 return null -> 뒤쪽 부품 도달 못 함. fallback 경로(bounds.IntersectRay)도 동일 패턴.spec QA-056: "hide 상태에서도 컴포넌트·물리 동작 유지" (스펙 B항목) -> Collider.enabled 비활성 불가. raycast 결과 자체에서 hidden 부품을 skip해야 함.

## fix — RaycastAll + sort + hidden skip
`csharpvar hits = Physics.RaycastAll(ray, 1e5f);
System.Array.Sort(hits, (a, b) => a.distance.CompareTo(b.distance));
foreach (var hit in hits)
{
    var candidate = (Part 추적);
    if (candidate == null) continue;
    if (IsPartHidden(candidate)) continue;   // hidden skip -> 다음 hit
    return candidate;
}
`fallback path도 동일 — List 누적 + Sort + hidden skip.
## 영향 범위
- Collider.enabled 비활성 X — 물리/IsTrigger/이벤트 모두 유지 (spec 정합)- 다중 hit 경우 가장 가까운 visible 부품 선택- 모든 hit이 hidden이면 결과 null (기존과 동일)- 성능: RaycastAll은 단일 Raycast보다 ~3-5x 느리지만 산업용 8000+ 부품에서도 ms 단위
## 변경 파일
- Assets/Scripts/Game/Factory00Bootstrap.cs (~40라인 -> PickPartUnderMouse 일괄 재작성)- ProjectSettings/ProjectSettings.asset — bundleVersion 0.1.255 -> 0.1.256
## 검증 시나리오

### QA-056
1. 부품 A (앞) + 부품 B (뒤) 배치 -> A를 hide
2. 씬에서 B 영역 클릭 -> **B 정상 선택** (이전: A가 raycast 차단 -> null)
3. A 영역 클릭 -> null (hidden 자체 선택 X — 기존 동작)
4. 모두 hidden -> null (기존)

### 기존 동작 무회귀
- visible 부품만 있을 때: 가장 가까운 부품 선택 (단일 Raycast 동일)- Gizmo 우선순위는 분기 외부에서 처리 (변경 없음)
## 다음 사이클
- v0.1.257 — QA-040 Signal Simulator UX 개편 spec 분석 + P1- v0.1.258 — 39th stable seal 봉인 (v0.1.251~257)- v0.1.259 — QA-014 Persp/Ortho (PM 회신 받으면)협업자 git origin/main = local. QA-014 PM 회신 계속 대기.


---

## 봉인 참조

본 사이클은 **48th stable seal (v0.1.366, 2026-05-24)** 일괄 봉인에 포함됨.

- journal: [2026-05-24-v0.1.298-366-48th-stable-seal.md](../../journal/2026-05-24-v0.1.298-366-48th-stable-seal.md)
- alias zip: [factory00-windows-x64-v0.1.366-stable.zip](../../downloads/factory00-windows-x64-v0.1.366-stable.zip) (170 MB)
