본문 바로가기
Unreal

GameFramework

by ji-han 2025. 2. 10.

게임의 구조를 정의하고 관리하는 시스템

역할

  • 게임 루프 관리
  • 플레이어 입력 / AI 동작 관리
  • 게임 상태 저장 및 전환
  • 월드 내 액터 관리

클래스

AGameModeBase

  • 게임 규칙을 정의하는 클래스
  • 메인 캐릭터, 점수 시스템 설정
  • 싱글/멀티 플레이 설정 가능
  • StartPlay() - 게임 시작 시 호출
  • HandleStartingNewPlayer() - 새로운 플레이어가 참가할 때

AGameStateBase

  • 게임의 전체 상태를 관리
  • 시간, 점수 등 
  • 클라이언트와 동기화되어 게임의 진행 상황 공유
  • OnRep_MatchState() - 게임 상태가 변경될 때 호출
  • SetMatchState() - 새로운 게임 상태를 설정

UGameInstance

  • 게임이 실행되는 동안 유지되는 싱글톤 클래스
  • 세션 관리, 데이터 저장, 게임 간 데이터 유지 등에 사용
  • Init() - 게임 시작 시 호출 됨

AHUD

  • 게임 화면에 UI 요소를 직접 그리는 클래스
  • 체력 바, 크로스헤어, 점수 등을 표시
  • UUserWidget을 활용
  • DrawHUD() - HUD를 그리는 함수

APlayerState

  • 개별 플레이어의 점수 팀 정보, 네트워크 ID 등을 저장
  • 멀티플레이어에서 사용
  • OnRep_Score() - 점수 변경 시 호출

APlayerController

  • 플레이어의 입력을 받아 제어
  • 카메라 조장, UI 입력, 서버-클라이언트 간 네트워크 처리
  • SetupInputComponent() - 입력을 설정
  • Possess(APawn* 폰이름) - 특정 폰을 조종하도록 설정

동작 방식

  1. 게임 실행 시 UGameInstance 초기화
  2. 월드가 생성되면서 AGameModeBase 활성화
  3. APlayerController가 플레이어를 관리 및 조종
  4. 게임이 진행되면서 AGameStateBase가 전체 상태 유지
  5. 플레이어 상태는 APlayerState에서 관리
  6. HUD가 UI를 표시 / UUserWidget을 통해 화장

 

'Unreal' 카테고리의 다른 글

Line Trace(Raycast)  (0) 2025.02.19
UI 용어  (0) 2025.02.13
기본 Class  (0) 2025.02.05
Transform  (0) 2025.02.03
리플렉션 용어  (1) 2025.01.23