# 🛠️ 비주얼 피팅 샌드박스 (Fit Sandbox) 사용 가이드

이 공간은 유닛, 몬스터, 혹은 쥠 무기(Weapon)의 **Position(위치), Rotation(회전), Scale(크기)** 오프셋 수치를 Godot 에디터 3D 뷰포트에서 실시간으로 확인하고 조율하여, 그 값을 손쉽게 GDScript로 옮겨 담기 위해 마련된 테스트베드입니다.

---

## 📂 디렉토리 구조

```
res://src/sandbox/
├── fit_sandbox.tscn      # 튜닝 전용 메인 3D 씬 (그리드 바닥, 조명, 카메라 포함)
├── fit_sandbox.gd        # Transform 코드를 에디터에서 자동 추출해주는 헬퍼 스크립트
├── SANDBOX_GUIDE.md      # 본 사용 설명서
├── units/
│   ├── striker_fit_test.tscn    # Striker 유닛 조율용 복사본 씬
│   └── guardian_fit_test.tscn   # Guardian 유닛 조율용 복사본 씬
└── monsters/
	└── monster_fit_test.tscn    # Monster 조율용 복사본 씬
```

---

## 🚀 빠른 조율 가이드 (예: Striker의 무기 쥠 오프셋 보정)

### Step 1. 샌드박스 씬 열기
1. Godot 에디터에서 `res://src/sandbox/fit_sandbox.tscn` 씬을 더블 클릭하여 엽니다.

### Step 2. 조율할 유닛 및 무기 배치
1. `res://src/sandbox/units/striker_fit_test.tscn` 인스턴스를 `TestingArea` 노드의 자식으로 드래그 앤 드롭하여 배치합니다.
2. 유닛의 본(Bone) 구조 내에서 무기가 장착될 손 노드를 찾습니다.
   - 예: `Striker_FitTest` -> `striker_model` -> `Root` -> `Skeleton3D` -> `RightHand`
3. 쥠 무기 메쉬/씬(예: `res://assets/models/items/weapons/azure_blade.fbx`)을 해당 `RightHand` 노드의 자식으로 배치합니다.

### Step 3. 3D 뷰포트에서 피팅 튜닝
1. 배치한 무기 노드를 선택하고, 3D 뷰포트 조작 기즈모를 사용해 손잡이를 쥐는 알맞은 **Position, Rotation, Scale**로 눈으로 보며 정교하게 조율합니다.

### Step 4. GDScript 코드 즉시 추출
1. 씬 트리 루트 노드인 `FitSandbox`를 선택합니다.
2. 인스펙터 창에서 다음 속성을 설정합니다:
   - **Target Node**: 방금 조율 완료한 무기 노드(예: `azure_blade`)를 드래그하여 지정합니다.
   - **Export Transform Code**: 이 체크박스(`export_transform_code`)를 **True**로 체크합니다.
3. 에디터 하단의 **Output (출력)** 패널을 확인하면 다음과 같이 복사해서 바로 쓸 수 있는 GDScript 코드가 출력됩니다:

```gdscript
==================================================
   FIT SANDBOX OFFSET EXPORT (Target: azure_blade)
==================================================
# GDScript 붙여넣기용 코드:
position = Vector3(0.0000, 0.0000, -0.6000)
rotation = Vector3(0.0000, 3.1416, 0.0000)  # Degrees: (0.0, 180.0, 0.0)
scale = Vector3(150.0000, 150.0000, 150.0000)
==================================================
```

### Step 5. 소스 코드에 붙여넣기
1. 추출된 Vector3 값을 복사하여 장착 관련 로직(예: `base_unit.gd` 내 `_attach_weapon()` 메서드 등)에 대입합니다.

---

## 💡 유용한 팁
- **@tool 스크립트 기반**: 이 기능은 게임을 직접 **실행(Run)하지 않고도** Godot 3D 에디터 상에서 실시간으로 추출할 수 있습니다.
- **오프셋 보정의 분리**: 피팅 작업이 완료된 후, 실제 인게임 소스 코드에 값을 입력하고 나면 샌드박스 씬은 자유롭게 비우거나 새로 복사해서 마음껏 테스트용으로 덮어쓸 수 있습니다.
