게임개발/ue server

[UE] 네트워크 모드에서의 액터의 준비와 게임 시작

차차냥 2024. 6. 16. 20:02

네트웍 멀티플레이어에서 원격 액터의 초기화 과정을 이해하는 시간입니다.

아래의 세 함수들은 액터의 준비 및 게임의 시작을 담당하는 함수입니다.

 

 

1. 액터의 준비

 - 액터의 초기화를 담당하는 함수들입니다.

// 서버와 무관
AGameStateBase::PostInitializeComponents()
  • 플레이어 컨트롤러가 초기화(생성)되면서, 네트워크와 무관한 (게임과 무관한) 액터 설정의 초기화는 PostInitializeComponents 에서 담당합니다.
  • 게임을 시작하기 전, 서버 변경 정보를 전달받아 네트워크로 전달합니다.
// 원격 클라이언트에서 호출됨
// 서버에서 값을 전달받아 원격 클라이언트의 Actor 세팅이 모두 마무리될 때 호출된다
AActor::PostNetInit()

 

  • 원격 클라이언트에서 호출되어 서버에서 변경된 다양한 값들을 각 클라이언트에 세팅하는 초기화 단계입니다.
  • 클라이언트 내 액터 세팅이 모두 마무리 될 때 호출합니다.
  • 서버가 아닌 원격 클라이언트에서만 호출됩니다. (서버 접속했을 시, 호출되지 않는 함수입니다)

여기까지 액터의 초기화가 모두 완료되면, 각 클라이언트의 게임이 시작됩니다.

2. 게임의 시작(StartPlay 함수 시작)

AActor::BeginPlay()
  • 쿼터뷰라던가, 게임 진행에 필요한 초기화는 BeginPlay 에서 진행됩니다.