씬 디렉터
SceneDirector
는 높은 수준의 씬 로직을 구동하고 씬 서비스를 유지하며 씬별 사용자 정의 데이터를 보유하는 역할을 합니다. 모든 주요 씬에는 SceneDirector
의 단일 인스턴스가 정확히 한 개 있습니다.
이 스크립트는 상속되도록 설계되었습니다.
예제
다음은 SceneDirector
에서 상속된 디렉트 스크립트의 일부 예제입니다.
메뉴 디렉터
MenuDirector
는 메뉴 씬의 드라이빙을 담당하며 선택 가능한 모든 게임 씬의 정의를 담고 있습니다.
게임플레이 디렉터
GameplayDirector
는 다음을 담당합니다.
- 첨부된 게임 씬의 구동에는 시뮬레이션 콜백에 대응하고 플레이 기능을 관리하는
SimulationContext
를 만들고 선택하는데 국한되지 않습니다. - 씬을 독립 실행형 모드에서 처리하는 방법에 대한 데이터를 보관합니다(예: 메뉴를 거치지 않고 편집기에서 직접 씬을 시작할 때).
새로운 게임플레이 씬 생성
다음은 FPS 템플릿에 새 게임플레이 씬을 생성하는 단계별 절차입니다.
- 빈 씬을 생성합니다.
- 환경적 시각 요소, 콜라이더 등을 추가합니다.
MapData
컴포넌트를 가진 GameObject를 추가합니다.GameplayDirector
컴포넌트가 있는 GameObject를 추가합니다.NavMeshSurface
컴포넌트가 있는 GameObject를 추가합니다.MapNavMeshDefinition
컴포넌트가 있는 GameObject를 추가하고, 이전 단계에서 생성한NavMeshSurface
를 연결합니다.- 씬 엔티티를 추가합니다 (예, SpawnPoints, Waypoints, ...).
NavMeshSurface
컴포넌트를 통해 네이게이션을 베이크 합니다.MapNavMeshDefinition
컴포넌트의Import from Unity
버튼을 클릭하여 유니티의 NavMesh를 임포트 합니다.- Create a
Map
asset via theQantum > Map
메뉴를 통해Map
에셋을 생성하고MapData
컴포넌트로 연결합니다. Quantum > GameplayData
메뉴를 통해GameplayData
에셋을 생성하고MapData
컴포넌트의User Asset
필드와 연결합니다.Map
에셋 내의 속성을 설정합니다 (또한MapData 컴포넌트
로 수행할 수 있습니다).- 포함된 버튼을 통해
MapData
컴포넌트를 베이크 합니다. - 씬 에디터에서 직접 게임 플레이 씬을 수행하기 위해
GameplayDirector
컴포넌트의Standalone Setup
속성을 설정합니다.