FanOfUE
(FanOfUE)
January 28, 2019, 2:23pm
6
Please allow me to put my test code and the console output as below
void ASampleCodingPractise::GetClassVsStaticClass()
{
UTestUObject* TestUObject = NewObject<UTestUObject>(this,TEXT("TestUObject"));
UClass* TestUObjectClass = TestUObject->GetClass();
UClass* TestUObjectStaticClass = UTestUObject::StaticClass();
UClass* TestUObjectStaticClassTakenFromGetClass = TestUObject->GetClass()->StaticClass();
UE_LOG(LogCodePractise, Log, TEXT("TestUObject->GetClass(): %s"), *TestUObject->GetClass()->GetName());
UE_LOG(LogCodePractise, Log, TEXT("UTestUObject::StaticClass(): %s"), *UTestUObject::StaticClass()->GetName());
UE_LOG(LogCodePractise, Log, TEXT("TestUObject->GetClass()->StaticClass(): %s"), *TestUObject->GetClass()->StaticClass()->GetName());
bool Test1 = false;
if (TestUObject->IsA(TestUObject->GetClass()))
{
Test1 = true;
}
UE_LOG(LogCodePractise, Log, TEXT("TestUObject->IsA(TestUObject->GetClass() result is: %s"), Test1?TEXT("True") : TEXT("False"));
bool Test2 = false;
if (TestUObject->IsA(UTestUObject::StaticClass()))
{
Test2 = true;
}
UE_LOG(LogCodePractise, Log, TEXT("TestUObject->IsA(UTestUObject::StaticClass()) result is: %s"), Test2 ? TEXT("True") : TEXT("False"));
bool Test3 = false;
if (TestUObject->IsA(TestUObject->GetClass()->StaticClass()))
{
Test3 = true;
}
UE_LOG(LogCodePractise, Log, TEXT("TestUObject->GetClass()->StaticClass()) result is: %s"), Test3 ? TEXT("True") : TEXT("False"));
}
Output:
LogCodePractise: TestUObject->GetClass(): TestUObject
LogCodePractise: UTestUObject::StaticClass(): TestUObject
LogCodePractise: TestUObject->GetClass()->StaticClass(): Class
LogCodePractise: TestUObject->IsA(TestUObject->GetClass() result is: True
LogCodePractise: TestUObject->IsA(UTestUObject::StaticClass()) result is: True
LogCodePractise: TestUObject->GetClass()->StaticClass()) result is: False