This document is about: QUANTUM 2
SWITCH TO

게임플레이

개요

GameplaySystem은 플레이어/적 스폰, 승리 조건 평가, 씬의 다양한 부분 활성화와 같은 고도의 씬 로직을 실행할 수 있는 방법을 제공합니다. 이 시스템 자체가 보기 매우 드물며, 주로 실제 로직이 구현되는 GameplayController에서 구현되는 상태 머신을 체크하는 역할을 합니다.

컨트롤러

주요 게임 플레이 로직은 GameplayController에 정의되어 있으며 GameplayController.User.cs에서 사용자가 확장할 수 있습니다. GameplayController에셋 이며 Quantum 시뮬레이션을 실행하는 데 필수 입니다. 이 에셋에는 정적 EGameplayState 구성(들어가기-나가기 상태 쌍 및 해당 기간)이 포함되어 있습니다. 또한 실행 시 스크립트에서 상태를 동적으로 설정하여 정적 구성을 효과적으로 재정의할 수 있습니다.

GameplayController API는 다음과 같습니다:

  • OnInitialize(): 시뮬레이션이 초기화되면 호출됨
  • OnDeinitialize(): 시뮬레이션이 사라지면 호출됨
  • OnEnterState(): 게임 플레이 상태에 들어갔을 때 호출됨
  • OnUpdateState(): 특정 게임 플레이 상태에 대하여 매 프레임마다 호출됨
  • OnExitState(): 게임 플레이 상태에서 나갔을 때 호출됨
  • GetNextState(): 현재 상태가 종료되려고 할 때 호출됨, 다음 단계 상태를 결정함
  • GetStateDuration(): 특정 상태의 지속 시간을 리턴

상태 머신

FPS 템플릿은 다음의 EGameplayState를 구현합니다.

  • Initialization: 씬 초기화 될 때 한 번 사용됨
  • Waiting For Players: 플레이어가 데이터를 전송하고 플레이어 엔티티를 만들 때까지 기다리며 마지막에 없어진 플레이어에 대해 AI를 생성합니다.
  • Game Start: 매치 소개 순서, 플레이어 개요 등에 사용될 수 있음
  • Round Start: 웜업 시퀀스, 카운트다운 ...
  • Round Progress: 메인 게임 플레이, 시간 기반, 팀 제거, ...
  • Round End: 라운드 승리/패배 순위
  • Round Replay: 선택적인 리플레이, 최종 킬, 라운드 최고 플레이어, ...
  • Game End: 최종 게임 플레이 순위, 종료 애니메이션, ...
  • Game Replay: 선택적인 리플렝, 게임의 최고 명장면, MVP 명장면, ...
  • Game Summary: 경기 통계, 보상, 이전 경기 상호작용 표시
  • Deinitialization: 지우기

다음 도표는 게임 플레이 상태 머신의 기본 흐름을 보여주고 있습니다:

fps template gameplay fsm
FPS 템플릿 게임플레이 FSM

데이터

게임 플레이를 지원하는 데이터는 GameplayData 에셋에 저장됩니다. 이 에셋에는 특정 씬에 대한 베이크 된 데이터가 포함되어 있습니다. 기본적으로 GameplayData 에셋에는 웨이포인트 및 NavMeshLinks가 포함되어 있으며GameplayData.User.cs에서 확장할 수 있습니다.

Back to top