게임엔진/Unreal
[Unreal] UI(위젯)에서 메인 캐릭터 가져오기
ShovelingLife
2022. 11. 19. 21:52
UUserWidget 클래스 내에 연관된 플레이어 캐릭터를 가져오는 함수가 존재한다. T같은 경우엔 미리 캐스팅해서 반환해준다는 점이 다르다.
FLocalPlayerContext 구조체 변수에 의해 가져오게 된다.
// 템플릿 함수 캐스팅해서 반환한다
template < class T >
T* GetOwningPlayerPawn() const
{
return Cast<T>(GetOwningPlayerPawn());
}
// 플레이어 폰을 가져오는 함수
APawn* UUserWidget::GetOwningPlayerPawn() const
{
if (APlayerController* PC = GetOwningPlayer())
{
return PC->GetPawn();
}
return nullptr;
}
// 플레이어 캐릭터를 반환하는 함수 PlayerContext가 사용 불가능하다면 널을 반환한다.
APlayerController* UUserWidget::GetOwningPlayer() const
{
return PlayerContext.IsValid() ? PlayerContext.GetPlayerController() : nullptr;
}