Unreal Engine

[UE] 언리얼의 클래스들

programmer-faust 2025. 8. 28. 21:13
  • 순서
    1. GameMode 클래스
    2. GameInstance 클래스
    3. GameState 클래스
    4. PlayerState 클래스
  • GameMode 클래스
    1. 역할: 게임 규칙과 규칙 실행자
    2. 특징
      • GameMode는 서버 전용 클래스로 서버에서만 존재하며 클라이언트에서는 존재하지 않음 > 클라이언트에서는 GameState로 동기화만 받도록 함
      • GameMode는 레벨마다 1개만 존재함
      • 클라이언트만 있는 싱글 플레이의 경우 클라이언트 프로세스 안에 서버 역할도 함께 실행을 시킴 => 로컬 서버 + 로컬 클라이언트가 같은 프로세스 안에 동시에 존재하는 구조로 로컬 서버 부분에서 GameMode가 생성됨.
      • 로컬 클라이언트는 내부적으로 서버가 가진 GameMode의 규칙을 그대로 따름.
      • 어떤 플레이어 캐릭터를 사용할지, 플레이어가 어떻게 스폰되지, 점수 규칙 등의 게임 규칙을 정의함
    3. 수명 주기: 맵이 로드될 때 생성되며 해당 맵이 끝나면 파괴
  • GameInstance 클래스
    1. 역할: 게임 실행 전체를 관리하는 전역 매니저
    2. 특징
      • 보통 게임이 실행되는 동안 단 1개만 존재함(에디터에서 Player in Editor시 예외적으로 여러 개 생길 수 있음)
      • 레벨 전환 시에도 파괴되지 않고 유지함
      • 세션 관리, 전역 데이터 저장, 서버 연결, 로비-인게임 간 데이터 유지 등에 활용
    3. 수명 주기: 게임 시작부터 종료까지 살아있음
  • GameState 클래스
    1. 역할: 현재 게임 진행 상황을 네트워크로 공유하는 데이터 저장소
    2. 특징
      • 서버와 클라이언트 모두에 존재함
      • 서버가 값을 갱신하면 클라이언트로 복제되어 현재 게임 상황을 공유함.
    3. 수명 주기: 레벨이 시작될 때 생성, 레벨 종료 시 파괴.
  • PlayerState 클래스
    1. 역할: 특정 플레이어의 상태와 통계를 네트워크로 공유
    2. 특징
      • 서버와 클라이언트 모두에 존재함.
      • 플레이어 고유 정보들을 저장함.
      • Pawn과 달리 플레이어의 신원/상태는 PlayerState에 유지됨 > Pawn이 죽고 리스폰해도 PlayerState는 유지됨
    3. 수명 주기: 플레이어가 서버에 접속할 때 생성, 접속 종료 시 제거됨
클래스 존재 위치 수명 주기 주요 책임
GameMode 서버 전용 맵 시작 > 맵 종료 게임 규칙, 승리 조건, 스폰 관리
GameInstance 서버 + 클라이언트(각자) 게임 실행 시작 > 종료 전역 데이터, 레벨 간 유지, 세션 관리
GameState 서버 + 클라이언트 맵 시작 > 맵 종료 현재 게임 상황 공유
PlayerState 서버 + 클라이언트 플레이어 접속 > 접속 종료 플레이어별 정보

'Unreal Engine' 카테고리의 다른 글

[UE]스마트 포인터  (0) 2025.08.29
[UE] 언리얼 엔진의 GC  (1) 2025.08.28
[UE]언리얼 오브젝트  (0) 2025.08.28
[UnrealEngine] Enhanced Input System  (0) 2025.08.01
[Unreal Engine] Unreal Engine_C++ 매크로  (5) 2025.07.16