GetOwner() 같은 함수로 액터를 받아올 경우 해당 액터의 클래스 타입이 무엇인지 확인하는 방법으로 2가지 방법이 있다.
OnwerPCECharacter = GetOwner();
if (OwnerPCECharacter->IsA(APCEPlayerCharacter::StaticClass()))
{
OwnerType = EOwnerType::OwnerType_Player;
}
else if (OwnerPCECharacter->IsA(APCEEnemyCharacter::StaticClass()))
{
OwnerType = EOwnerType::OwnerType_Enemy;
}
else
{
return;
}
IsA() 함수를 사용한 방법과
OwnerPCECharacter = GetOwner();
if (OwnerPCECharacter->GetClass()->ImplementsInterface(UInterface_PCEPlayerCharacter::StaticClass()))
{
OwnerType = EOwnerType::OwnerType_Player;
}
else if (OwnerPCECharacter->GetClass()->ImplementsInterface(UInterface_PCEEnemyCharacter::StaticClass()))
{
OwnerType = EOwnerType::OwnerType_Enemy;
}
else
{
return;
}
해당 액터가 상속한 인터페이스를 통한 확인방법이 있다.
그 중 ImplementsInterface의 내부 함수는 IsChildOf()를 사용하고 있다.
IsA() 함수와 IsChildOf() 함수는 사용목적이 같은데 IsA() 함수는 대상이 액터일 경우에 사용하고 IsChildOf() 함수는 대상이 클래스타입일 때 사용한다.
'Unreal Engine > C++' 카테고리의 다른 글
[Unreal Engine4 C++] Delay 구현 (0) | 2021.04.06 |
---|---|
[Unreal Engine 4 C++] Interface C++에서 구현하기 (0) | 2021.03.24 |
[Unreal Engine 4 C++] Tutorial 유튜브 사이트 (0) | 2021.03.03 |
[Unreal Engine 4 C++] 반환 값이 2개 이상일 경우에 사용하는 TTuple (0) | 2021.03.03 |
[Unreal Engine 4 C++] C++로 UserWidget을 구현할 때 생성자에서 주의할 점 (1) | 2021.01.16 |