▶ GameMode
* 게임 실행 중에 게임 모드의 포인터를 가져올 때는 월드의 GetAuthGameMode라는 함수를 사용한다.
* 멀티 플레이 게임에서 게임 모드는 게임을 관리하는 방장 역황을 하며 게임에서 중요한 데이터를 인증하는 권한을 가진다.
auto ABGameMode = Cast<AABGameMode>(GetWorld()->GetAuthGameMode());
▶ GameState
auto ABGameState = Cast<AABGameState>(UGameplayStatics::GetGameState(this));
▶ PlayerState
정의 : APlayerState* GetPlayerState() const { return PlayerState; }
auto ABPlayerState = Cast<AABPlayerState>(GetPlayerState());
▶ AnimInstance
ABAnim = Cast<UABAnimInstance>(GetMesh()->GetAnimInstance());
▶ APlayerController (AController)
FORCEINLINE AController* APawn::GetController() const
{
return Controller;
}
float AABCharacter::TakeDamage(float DamageAmount, FDamageEvent const & DamageEvent, AController * EventInstigator, AActor * DamageCauser)
{
if (CurrentState == ECharacterState::DEAD)
{
if (EventInstigator->IsPlayerController())
{
auto ABPlayerController = Cast<AABPlayerController>(EventInstigator); // AController
}
}
return FinalDamage;
}
* UI는 GetOwningPlayer 함수를 사용해 현재 자신을 생성하고 관리하는 플레이어 컨트롤러의 정보를 가져올 수 있다.
auto ABPlayerController = Cast<AABPlayerController>(GetOwningPlayer());
ABPlayerController->ChangeInputMode(true);
ABPlayerController->SetPause(false);
▶ GameInstance
auto ABGameInstance = Cast<UABGameInstance>(UGameplayStatics::GetGameInstance(GetWorld()));
▶ UProgressBar
HPProgressBar = Cast<UProgressBar>(GetWidgetFromName(TEXT("PB_HPBar")));
▶ UTextBlock
PlayerName = Cast<UTextBlock>(GetWidgetFromName(TEXT("txtPlayerName")));
▶ UBehaviorTreeComponent
auto BehaviorTreeComponent = Cast<UBehaviorTreeComponent>(BrainComponent);
▶ PAWN
* 충돌판정에서도 가져 올수 있고, AI에서도 가져 올 수 있고, 등등 얻어 올수 있는 방법이 매우 많음
* 자세히 알아보기 (예정)
▶ 특정 타입을 상속 받은 액터의 목록
* 현재월드에 있는 특정 타입을 상속 받은 액터의 목록은 TActorIterator<액터타입> 구문을 사용해 가져올 수 있다
'Unreal > Concept' 카테고리의 다른 글
게임 프레임워크 (0) | 2019.05.12 |
---|---|
언리얼 게임실행 프로세스 (0) | 2019.05.12 |
UClass (0) | 2019.05.09 |
TSubclassOf (0) | 2019.05.08 |
UFUNCTION 지정 매크로 (0) | 2019.05.01 |