▶ 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

+ Recent posts