# SINO VR WMS — 교육 시뮬레이터 설계 (MVP) ## 0. 목표 WMS 업무를 "게임처럼" 익히는 교육 프로그램. 첫 모듈은 **입고(Inbound)**. 실제 창고 업무 흐름을 미션으로 만들고, 잘못된 처리에 감점/피드백을 준다. ## 1. MVP 범위 (입고 모듈) - 시점: **탑다운(창고 관리 뷰)** — 3D 작업 최소화, WMS 가치 빠르게 전달 - 핵심 UI: **PDA 스캔** (바코드 스캔 → 검증 → 처리) ### 업무 흐름 (미션 단계) 1. **입고예정 확인** — 오늘 들어올 ASN/입고예정 리스트 확인 2. **바코드 스캔** — 도착한 박스/팔레트 스캔 3. **가입고(검수) 처리** — 예정 수량 vs 실수량 비교, 차이 발생 시 분기 4. **로케이션 추천/선택** — 적치할 위치 결정 (용량/존 규칙 검증) 5. **적치(Putaway)** — 선택한 로케이션에 재고 반영 6. **완료 & 채점** — 처리 시간 + 정확도로 점수, 오류 피드백 ### 오류/감점 케이스 (교육 포인트) - 잘못된 품목 스캔 (바코드 불일치) - 예정 수량과 실수량 불일치 미처리 - 용량 초과 로케이션에 적치 - 존(보관 조건) 위반 적치 (예: 냉장품을 상온존에) - 미할당 품목 방치 ## 2. 데이터 모델 (코드는 Unity Assets/Scripts/Data) 모든 교육 컨텐츠는 코드가 아닌 **데이터로 분리** → 고객사별 시나리오 교체 용이. - `ItemDefinition` (품목): SKU, 이름, 바코드, 보관조건(존), 단위부피 - `LocationDefinition` (로케이션): ID, 존, 최대용량, 좌표 - `InboundScenario` (입고 시나리오): 입고예정 라인 목록 + 함정(실수량 차이 등) - 런타임 상태는 ScriptableObject가 아닌 일반 C# 클래스로 보관 ## 3. 런타임 구조 ``` GameManager // 전체 흐름/씬 상태 └ InboundManager // 입고 미션 진행(단계 전이) ├ ScanService // 바코드 스캔 검증 ├ PutawayService // 로케이션 규칙 검증/적치 └ ScoringSystem // 점수/오류 집계 UI ├ PdaView // PDA 스캔 화면 ├ InboundListView // 입고예정 리스트 └ ResultView // 채점 결과 ``` ## 4. 폴더 구조 (Unity) ``` Assets/ Scripts/ Core/ # GameManager, 흐름 enum Data/ # ScriptableObject 정의 (Item/Location/Scenario) Inbound/ # InboundManager, Scan/Putaway/Scoring UI/ # 뷰 스크립트 Data/ # .asset (ScriptableObject 인스턴스) Scenes/ # Warehouse_Inbound.unity Prefabs/ # Pallet, Box, LocationSlot Resources/Scenarios/ # JSON 시나리오 (런타임 로드용) ``` ## 5. 다음 단계 (이 골격 이후) - [ ] Unity 6 LTS 프로젝트 생성 후 `Assets/` 복사 - [ ] 탑다운 카메라 + 창고 그리드 씬 구성 - [ ] PDA UI 프리팹 (uGUI 또는 UI Toolkit) - [ ] 로케이션 슬롯 프리팹 + 적치 애니메이션 - [ ] 채점 결과 화면 - [ ] 2번째 모듈(피킹) 확장