Unreal Engine에서
PostInitializeComponents,Login,InitNewPlayer,PostLogin은 모두 게임 실행/접속 초기화 과정에서 호출되는 중요한 함수들이지만 각각의 목적과 호출 시점이 다르다.
개념이 헷갈려서 흐름 순서와 각 함수의 역할, 서버/클라이언트 여부, 그리고 어디서 오버라이드할 수 있는지를 공부했음
1. GameMode::Login()
2. GameMode::InitNewPlayer()
3. GameMode::PostLogin()
4. PlayerController::PostInitializeComponents()
5. Actor::BeginPlay()
| 함수 이름 | 오버라이드 위치 | 호출 시점 설명 | 주요 목적 및 활용 | 서버/클라이언트 |
|---|---|---|---|---|
Login | AGameModeBase | 접속 시도 시 가장 먼저 | 유저의 IP, 옵션 파싱, 인증 등 | 서버 |
InitNewPlayer | AGameModeBase | Login 후 | PlayerController, PlayerState 초기화 | 서버 |
PostLogin | AGameModeBase | InitNewPlayer 후 | 게임 로직 시작, 유저 관리, 게임 시작 체크 등 | 서버 |
PostInitializeComponents | AActor 또는 APlayerController 등 | 컴포넌트가 모두 초기화된 후 | 컴포넌트 간의 상호작용 초기화 | 서버 & 클라이언트 |
BeginPlay | AActor 기반 클래스 | 월드에 스폰된 후 | 실제 게임 로직 시작 시점 | 서버 & 클라이언트 |
LoginLogin(const FString& Options, const FUniqueNetIdRepl& UniqueId, FString& ErrorMessage)
FString Error;
APlayerController* PC = GameMode->Login(Options, UniqueId, Error);
InitNewPlayerInitNewPlayer(APlayerController* NewPlayer, const FString& Options, const FString& Portal)
Login이 성공한 후 호출됨PostLoginPostLogin(APlayerController* NewPlayer)
InitNewPlayer 후 호출PostInitializeComponentsPostInitializeComponents()
AActor, APlayerController, APawn, ACharacter 등 모든 Actor 기반 클래스에서 사용 가능void AMyCharacter::PostInitializeComponents()
{
Super::PostInitializeComponents();
// 예: HealthComponent → MeshComponent 연결
}
클라이언트 접속
↓
GameMode::Login() → 인증 처리
↓
GameMode::InitNewPlayer() → PlayerController/PlayerState 설정
↓
GameMode::PostLogin() → 게임 준비 완료, 로비 진입 등
↓
(각 Actor의) PostInitializeComponents()
↓
(각 Actor의) BeginPlay() → 실제 게임 시작
| 함수명 | 용도 |
|---|---|
Login | 유저 인증, 접속 유효성 검사 |
InitNewPlayer | PlayerState, 이름 설정, 포지션 초기화 등 |
PostLogin | 유저 수 체크, 게임 시작 조건, UI 메시지 전송 등 |
PostInitializeComponents | 컴포넌트 간 연결이나 초기 값 설정 |
BeginPlay | 게임 로직 시작, 타이머 설정, 이펙트 재생 등 |
PostLogin에서 처리됩니다. 접속자 수 체크 → 준비 완료되면 GameState를 통해 게임 시작.PostInitializeComponents는 주로 내부적인 세팅 (컴포넌트 간 연결 등)에 집중.BeginPlay는 실제 게임이 시작될 때 작동하는 함수라서 이펙트/타이머 등 시각적인 부분에 적합.