<aside>
💡
Unity Simulationt System 구축을 위해 설계한 페이지 입니다.
</aside>
목표
- **
React Native
**로부터 받은 데이터를 기반으로 Simulation
을 진행
- 정상적으로
Simulation
을 마무리 하는 시퀀스 구축
Simulation
완료 후 결과 .json
파일과 .mp4
파일을 **React Native
**로 전달
설계 내용
![[Geo Gol] Unity Simulation Scenario-Page-1.drawio.png](https://prod-files-secure.s3.us-west-2.amazonaws.com/d1fa5b6b-0659-4f46-bb50-fdb389ffbd31/534dc84f-d0a6-46a4-a247-88a2e170192d/Geo_Gol_Unity_Simulation_Scenario-Page-1.drawio.png)
class |
역할 |
내용 |
비고 |
SimulationManager |
1. Manage System Main Sequence |
|
|
- Manage Each Manager Class | - 중앙 집권화
- DataManager class : 인원 수 및 닉네임 데이터 받기
- AIManager class : 인원 수 만큼 AI 객체 생성
- CreatingMapManager class : Simulation Map 생성 및 Respon Position 반환
- RecordingManager class : 녹화 준비 지시
- SimulationController class : 각 Simulation 상태별 예약 이벤트 추가 및 Simulation Sequence 시작 지시 | |
|
SimulationController
| 1. Manage Simulation about Main Sequence | - 시뮬레이션 “준비”, “진행”, “마무리” 3단계로 구분된 상태(state) 패턴으로 설계
- Ready State : Simulation 시작 카운트 , 시뮬레이션 시간 제한 세팅
- Play State : 시뮬레이션 시작
- End State : 결과 집계 및 데이터 패킹 | Play → End Trigger : 한 플레이어만 남는 경우, 지정된 시간(5~10초)이 지난 경우 |
|
DataManager
| 1. Send and receive data directly with React Native | - 다른 객체가 요청하는 데이터 전달 및 저장
- 각종 데이터 json 형태로 변환
- json 데이터 관리 | |
|
AIManager
| 1. AI object Manage | - 각 AIForPlayer 객체들을 관리
- AIForPlayer 객체들에게 콜백이벤트 전달
| 콜백이벤트⇒ 자신들이 죽을 때마다 AIManager에게 죽었다고 알려주면서 최종 살아있는 Player 수 업데이트 |
|
AIForPlayer
| 1 AI Objects Implemented Based on Physical Engine | | |
| RecordingManager
| 1. Record Simulation to .mp4 file type | - 시뮬레이션 상황을 실시간으로 녹화
- 녹화한 데이터를 .mp4로 전달 | |
|
CreatingMapManager
| 1. Manage Map List
- Select and Create Map Object
- Send respon Position about map to Manager | - 맵들 중 랜덤으로 하나를 선택하여 활성화
- 선택된 MapInfo에서 리스폰 지역 리스트를 Simulation에게 전달 | 맵 생성 로직 협의 필요 |
|
MapInfo
| 1. Manage 3D Map Object
- Save Respon Data | - 개발자가 설계 및 구성해 놓은 맵 리스트 관리