GameMode
클래스 : 총괄 관리자(TextRPG의 GameManager)
Pawn
클래스 or Character
클래스)의 스폰 및 정보 관리PlayerController
클래스 : 키보드, 마우스로 캐릭터를 조정할 수 있게 만들어 주는 클래스PlayerController
를 정의하여 연결PlayerController
는 PlayerState
를 참조하기 때문에 이걸 사용해서 초기화할 수 있다GameState
클래스와 PlayerState
클래스GameState
클래스 : 게임의 현재 상태(진행 상황, 타이머, 스폰된 아이템 개수 등)와 서버-클라이언트 간 동기화 되는 데이터를 저장하는 클래스PlayerState
클래스 : 개별 플레이어의 상태, 정보를 저장하는 클래스GameState
와 PlayerState
를 사용해서 서버-클라이언트 간 동기화를 수행DefaultPawnClass
: 게임에서 플레이어가 기본적으로 사용할 캐릭터 객체(Pawn
, Character
)를 담을 변수(=프로퍼티)PlayerControllerClass
: 플레이어 입력을 처리할 PlayerController 객체를 담을 변수GameStateClass
: 게임의 상태 정보를 저장하고 클라이언트와 동기화하는 GameState 객체를 담을 변수PlayerStateClass
: 각 플레이어의 정보를 저장하는 PlayerState 객체를 담을 변수HUDClass
: HUD를 담당하는 객체를 담을 변수SpectatorClass
: 관전자 모드에서 사용할 Pawn 객체를 담을 변수StartPlay()
: 게임이 시작될 때 호출되며 초기화 논리를 작성하는 함수HandleStartingNewPlayer(AController NewPlayer)
: 새로운 플레이어가 접속했을 때 호출되며, 플레이어 초기화를 처리Logout(AController Exiting)
: 플레이어가 게임을 떠날 때 호출K2_PostLogin(APlayerController NewPlayer)
: 플레이어가 로그인한 직후 호출되는 블루프린트 노출 함수RestartPlayer(AController NewPlayer)
: 플레이어를 다시 스폰할 때 사용되는 함수(ex) 리스폰)Pawn
클래스: 조작 가능한 객체들의 부모클래스
Character
클래스: Pawn
클래스를 상속하고 인간형 캐릭터를 지원하기 위해 더 높은 수준으로 설계된 클래스
CapsuleComponent
, ArrowComponent
, SkeletalMeshComponent
, CharacterMovementComponent
가 추가되어 있음ArrowComponent
: 캐릭터가 어느 방향을 바라보고 있는지 표시해주기 위한 컴포넌트SkeletalMesh
: 뼈대를 중심으로 "움직이는 Mesh"CharacterMovementComponent
: 이동, 점프, 중력, 네트워크까지 다양한 입력에 대해 "이런 식으로 처리해라, 저런 식으로 처리해라" 라는 (이동 로직, 물리 로직)을 구현해놓은 컴포넌트SetupPlayerInputComponent()
: 입력에 의해 호출될 함수를 바인딩하는 함수(IA와 함수를 바인딩)