UClass에 등록된 속성과 함수들은 TFieldIterator에 의해 모두 검색이 가능하다

 

ex)

UClass* ClassInfo1 = WebConnection->GetClass();
UClass* ClassInfo2 = UWebConnection::StaticClass();

for (TFieldIterator<UProperty> It(ClassInfo1); It; ++It)
{
	AB_LOG(Warning, TEXT("Field : %s, Type : %s"), *It->GetName(), *It->GetClass()->GetName());
	UStrProperty* StrProp = FindField<UStrProperty>(ClassInfo1, *It->GetName());

	if (StrProp)
	{
		AB_LOG(Warning, TEXT("Value = %s"), *StrProp->GetPropertyValue_InContainer(WebConnection));
	}
}

 

 

<UFunction 같은 경우 위처러 TFieldIterator<UFUNCTION>을 사용할 수 있으며, 
아니면 아래 코드와 같이 
NativeFunctionLookupTable 배열을 사용해 현재 클래스에 어떤 C++ 함수가 있는지 파악할 수 있습니다.


for (const auto& Entry : ClassInfo1->NativeFunctionLookupTable)
{
   AB_LOG(Warning, TEXT("Function = %s"), *Entry.Name.ToString());
   UFunction* Func1 = ClassInfo1->FindFunctionByName(Entry.Name);
   if (Func1->ParmsSize == 0)
   {
     WebConnection->ProcessEvent(Func1, NULL);
   }
}

 

 

 

+ Recent posts