08ea11ea37
- Unity 6.4 URP 프로젝트 베이스 - Inbound 비즈니스 로직: Scan/Putaway/Scoring 서비스 + InboundManager - 데이터 모델: Item/Location/Scenario (ScriptableObject) + StorageZone - 샘플 시나리오 inbound_basic.json, 설계문서/목업 포함 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2.9 KiB
2.9 KiB
SINO VR WMS — 교육 시뮬레이터 설계 (MVP)
0. 목표
WMS 업무를 "게임처럼" 익히는 교육 프로그램. 첫 모듈은 입고(Inbound). 실제 창고 업무 흐름을 미션으로 만들고, 잘못된 처리에 감점/피드백을 준다.
1. MVP 범위 (입고 모듈)
- 시점: 탑다운(창고 관리 뷰) — 3D 작업 최소화, WMS 가치 빠르게 전달
- 핵심 UI: PDA 스캔 (바코드 스캔 → 검증 → 처리)
업무 흐름 (미션 단계)
- 입고예정 확인 — 오늘 들어올 ASN/입고예정 리스트 확인
- 바코드 스캔 — 도착한 박스/팔레트 스캔
- 가입고(검수) 처리 — 예정 수량 vs 실수량 비교, 차이 발생 시 분기
- 로케이션 추천/선택 — 적치할 위치 결정 (용량/존 규칙 검증)
- 적치(Putaway) — 선택한 로케이션에 재고 반영
- 완료 & 채점 — 처리 시간 + 정확도로 점수, 오류 피드백
오류/감점 케이스 (교육 포인트)
- 잘못된 품목 스캔 (바코드 불일치)
- 예정 수량과 실수량 불일치 미처리
- 용량 초과 로케이션에 적치
- 존(보관 조건) 위반 적치 (예: 냉장품을 상온존에)
- 미할당 품목 방치
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번째 모듈(피킹) 확장