本文整理汇总了C++中TObjectIterator::HasAnyClassFlags方法的典型用法代码示例。如果您正苦于以下问题:C++ TObjectIterator::HasAnyClassFlags方法的具体用法?C++ TObjectIterator::HasAnyClassFlags怎么用?C++ TObjectIterator::HasAnyClassFlags使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TObjectIterator
的用法示例。
在下文中一共展示了TObjectIterator::HasAnyClassFlags方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DumpUsageStats
void UBehaviorTreeManager::DumpUsageStats() const
{
FNodeClassCounter AllNodesCounter;
for (TObjectIterator<UClass> It; It; ++It)
{
if (It->IsChildOf(UBTNode::StaticClass()) && It->HasAnyClassFlags(CLASS_Abstract) == false
#if WITH_EDITOR
&& !(FKismetEditorUtilities::IsClassABlueprintSkeleton(*It)
|| It->HasAnyClassFlags(CLASS_NewerVersionExists))
#endif
)
{
AllNodesCounter.Declare(*It);
}
}
UE_LOG(LogBehaviorTree, Display, TEXT("----------------------UBehaviorTreeManager::DumpUsageStats----------------------\nBehavior Trees:"));
// get all BTNode classes
for (TObjectIterator<UBehaviorTree> It; It; ++It)
{
FNodeClassCounter TreeNodeCounter;
UE_LOG(LogBehaviorTree, Display, TEXT("--- %s ---"), *(It->GetName()));
StatNodeUsage(It->RootNode, TreeNodeCounter);
TreeNodeCounter.Print();
AllNodesCounter.Append(TreeNodeCounter);
}
UE_LOG(LogBehaviorTree, Display, TEXT("--- Total Nodes usage:"));
AllNodesCounter.Print(TEXT(","));
}
示例2: InitializeStreamingMethods
/**
* Initializes the list of possible level streaming methods.
* Does nothing if the lists are already initialized.
*/
void InitializeStreamingMethods()
{
check( GStreamingMethodStrings.Num() == GStreamingMethodClassList.Num() );
if ( GStreamingMethodClassList.Num() == 0 )
{
// Assemble a list of possible level streaming methods.
for ( TObjectIterator<UClass> It ; It ; ++It )
{
if ( It->IsChildOf( ULevelStreaming::StaticClass() ) &&
(It->HasAnyClassFlags(CLASS_EditInlineNew)) &&
!(It->HasAnyClassFlags(CLASS_Hidden | CLASS_Abstract | CLASS_Deprecated | CLASS_Transient)))
{
const FString ClassName( It->GetName() );
// Strip the leading "LevelStreaming" text from the class name.
// @todo DB: This assumes the names of all ULevelStreaming-derived types begin with the string "LevelStreaming".
GStreamingMethodStrings.Add( ClassName.Mid( 14 ) );
GStreamingMethodClassList.Add( *It );
}
}
}
}
示例3: AssembleListOfExporters
void AssembleListOfExporters(TArray<UExporter*>& OutExporters)
{
auto TransientPackage = GetTransientPackage();
// @todo DB: Assemble this set once.
OutExporters.Empty();
for (TObjectIterator<UClass> It; It; ++It)
{
if (It->IsChildOf(UExporter::StaticClass()) && !It->HasAnyClassFlags(CLASS_Abstract))
{
UExporter* Exporter = NewObject<UExporter>(TransientPackage, *It);
OutExporters.Add(Exporter);
}
}
}
示例4: ListAllCommandlets
/**
* Loads all of the code packages completely (for script classes). Then iterates
* through the UClass-es finding all commandlets and dumping information on them
*/
static void ListAllCommandlets(void)
{
warnf(TEXT("%-40s %s"),TEXT("Commandlet"),TEXT("Description"));
warnf(TEXT("--------------------------------------------------------------------------------"));
// Now iterate through all UClass-es looking for commandlets
for (TObjectIterator<UClass> It; It; ++It)
{
UCommandlet* DefObject = Cast<UCommandlet>(It->GetDefaultObject());
if (DefObject != NULL)
{
// Ignore commandlets that can't be created
if (It->HasAnyClassFlags(CLASS_Abstract) == FALSE)
{
const FString& Name = GetCommandletName(DefObject);
warnf(TEXT("%-40s - %s"),*Name,*DefObject->HelpDescription);
}
}
}
}