本文整理汇总了C++中TWeakObjectPtr::GetFName方法的典型用法代码示例。如果您正苦于以下问题:C++ TWeakObjectPtr::GetFName方法的具体用法?C++ TWeakObjectPtr::GetFName怎么用?C++ TWeakObjectPtr::GetFName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TWeakObjectPtr
的用法示例。
在下文中一共展示了TWeakObjectPtr::GetFName方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GenerateColumnId
void FPropertyTableColumn::GenerateColumnId()
{
TWeakObjectPtr< UObject > Object = DataSource->AsUObject();
TSharedPtr< FPropertyPath > PropertyPath = DataSource->AsPropertyPath();
// Use partial path for a valid column ID if we have one. We are pointing to a container with an array, but all columns must be unique
if ( PartialPath->GetNumProperties() > 0 )
{
Id = FName( *PartialPath->ToString());
}
else if ( Object.IsValid() )
{
Id = Object->GetFName();
}
else if ( PropertyPath.IsValid() )
{
Id = FName( *PropertyPath->ToString() );
}
else
{
Id = NAME_None;
}
}
示例2: GetMenuActions
void UAnimGraphNode_SequencePlayer::GetMenuActions(FBlueprintActionDatabaseRegistrar& ActionRegistrar) const
{
auto LoadedAssetSetup = [](UEdGraphNode* NewNode, bool /*bIsTemplateNode*/, TWeakObjectPtr<UAnimSequence> SequencePtr)
{
UAnimGraphNode_SequencePlayer* SequencePlayerNode = CastChecked<UAnimGraphNode_SequencePlayer>(NewNode);
SequencePlayerNode->Node.Sequence = SequencePtr.Get();
};
auto UnloadedAssetSetup = [](UEdGraphNode* NewNode, bool bIsTemplateNode, const FAssetData AssetData)
{
UAnimGraphNode_SequencePlayer* SequencePlayerNode = CastChecked<UAnimGraphNode_SequencePlayer>(NewNode);
if (bIsTemplateNode)
{
if (const FString* SkeletonTag = AssetData.TagsAndValues.Find(TEXT("Skeleton")))
{
SequencePlayerNode->UnloadedSkeletonName = *SkeletonTag;
}
}
else
{
UAnimSequence* Sequence = Cast<UAnimSequence>(AssetData.GetAsset());
check(Sequence != nullptr);
SequencePlayerNode->Node.Sequence = Sequence;
}
};
const UObject* QueryObject = ActionRegistrar.GetActionKeyFilter();
if (QueryObject == nullptr)
{
FAssetRegistryModule& AssetRegistryModule = FModuleManager::LoadModuleChecked<FAssetRegistryModule>(TEXT("AssetRegistry"));
// define a filter to help in pulling UAnimSequence asset data from the registry
FARFilter Filter;
Filter.ClassNames.Add(UAnimSequence::StaticClass()->GetFName());
Filter.bRecursiveClasses = true;
// Find matching assets and add an entry for each one
TArray<FAssetData> SequenceList;
AssetRegistryModule.Get().GetAssets(Filter, /*out*/SequenceList);
for (auto AssetIt = SequenceList.CreateConstIterator(); AssetIt; ++AssetIt)
{
const FAssetData& Asset = *AssetIt;
UBlueprintNodeSpawner* NodeSpawner = UBlueprintNodeSpawner::Create(GetClass());
if (Asset.IsAssetLoaded())
{
TWeakObjectPtr<UAnimSequence> AnimSequence = Cast<UAnimSequence>(Asset.GetAsset());
NodeSpawner->CustomizeNodeDelegate = UBlueprintNodeSpawner::FCustomizeNodeDelegate::CreateStatic(LoadedAssetSetup, AnimSequence);
NodeSpawner->DefaultMenuSignature.MenuName = GetTitleGivenAssetInfo(FText::FromName(AnimSequence->GetFName()), AnimSequence->IsValidAdditive());
}
else
{
NodeSpawner->CustomizeNodeDelegate = UBlueprintNodeSpawner::FCustomizeNodeDelegate::CreateStatic(UnloadedAssetSetup, Asset);
NodeSpawner->DefaultMenuSignature.MenuName = GetTitleGivenAssetInfo(FText::FromName(Asset.AssetName), /*bKnownToBeAdditive =*/false);
}
ActionRegistrar.AddBlueprintAction(Asset, NodeSpawner);
}
}
else if (const UAnimSequence* AnimSequence = Cast<UAnimSequence>(QueryObject))
{
UBlueprintNodeSpawner* NodeSpawner = UBlueprintNodeSpawner::Create(GetClass());
TWeakObjectPtr<UAnimSequence> SequencePtr = AnimSequence;
NodeSpawner->CustomizeNodeDelegate = UBlueprintNodeSpawner::FCustomizeNodeDelegate::CreateStatic(LoadedAssetSetup, SequencePtr);
NodeSpawner->DefaultMenuSignature.MenuName = GetTitleGivenAssetInfo(FText::FromName(AnimSequence->GetFName()), AnimSequence->IsValidAdditive());
ActionRegistrar.AddBlueprintAction(QueryObject, NodeSpawner);
}
else if (QueryObject == GetClass())
{
FAssetRegistryModule& AssetRegistryModule = FModuleManager::LoadModuleChecked<FAssetRegistryModule>(TEXT("AssetRegistry"));
// define a filter to help in pulling UAnimSequence asset data from the registry
FARFilter Filter;
Filter.ClassNames.Add(UAnimSequence::StaticClass()->GetFName());
Filter.bRecursiveClasses = true;
// Find matching assets and add an entry for each one
TArray<FAssetData> SequenceList;
AssetRegistryModule.Get().GetAssets(Filter, /*out*/SequenceList);
for (auto AssetIt = SequenceList.CreateConstIterator(); AssetIt; ++AssetIt)
{
const FAssetData& Asset = *AssetIt;
if (Asset.IsAssetLoaded())
{
continue;
}
UBlueprintNodeSpawner* NodeSpawner = UBlueprintNodeSpawner::Create(GetClass());
NodeSpawner->CustomizeNodeDelegate = UBlueprintNodeSpawner::FCustomizeNodeDelegate::CreateStatic(UnloadedAssetSetup, Asset);
NodeSpawner->DefaultMenuSignature.MenuName = GetTitleGivenAssetInfo(FText::FromName(Asset.AssetName), /*bKnownToBeAdditive =*/false);
ActionRegistrar.AddBlueprintAction(Asset, NodeSpawner);
}
}
}
示例3: GenerateColumnDisplayName
void FPropertyTableColumn::GenerateColumnDisplayName()
{
TWeakObjectPtr< UObject > Object = DataSource->AsUObject();
TSharedPtr< FPropertyPath > PropertyPath = DataSource->AsPropertyPath();
if ( Object.IsValid() )
{
if ( Object->IsA( UProperty::StaticClass() ) )
{
const UProperty* Property = Cast< UProperty >( Object.Get() );
DisplayName = FText::FromString(UEditorEngine::GetFriendlyName(Property));
}
else
{
DisplayName = FText::FromString(Object->GetFName().ToString());
}
}
else if ( PropertyPath.IsValid() )
{
//@todo unify this logic with all the property editors [12/11/2012 Justin.Sargent]
FString NewName;
bool FirstAddition = true;
const FPropertyInfo* PreviousPropInfo = NULL;
for (int PropertyIndex = 0; PropertyIndex < PropertyPath->GetNumProperties(); PropertyIndex++)
{
const FPropertyInfo& PropInfo = PropertyPath->GetPropertyInfo( PropertyIndex );
if ( !(PropInfo.Property->IsA( UArrayProperty::StaticClass() ) && PropertyIndex != PropertyPath->GetNumProperties() - 1 ) )
{
if ( !FirstAddition )
{
NewName += TEXT( "->" );
}
FString PropertyName = PropInfo.Property->GetDisplayNameText().ToString();
if ( PropertyName.IsEmpty() )
{
PropertyName = PropInfo.Property->GetName();
const bool bIsBoolProperty = Cast<const UBoolProperty>( PropInfo.Property.Get() ) != NULL;
if ( PreviousPropInfo != NULL )
{
const UStructProperty* ParentStructProperty = Cast<const UStructProperty>( PreviousPropInfo->Property.Get() );
if( ParentStructProperty && ParentStructProperty->Struct->GetFName() == NAME_Rotator )
{
if( PropInfo.Property->GetFName() == "Roll" )
{
PropertyName = TEXT("X");
}
else if( PropInfo.Property->GetFName() == "Pitch" )
{
PropertyName = TEXT("Y");
}
else if( PropInfo.Property->GetFName() == "Yaw" )
{
PropertyName = TEXT("Z");
}
else
{
check(0);
}
}
}
PropertyName = FName::NameToDisplayString( PropertyName, bIsBoolProperty );
}
NewName += PropertyName;
if ( PropInfo.ArrayIndex != INDEX_NONE )
{
NewName += FString::Printf( TEXT( "[%d]" ), PropInfo.ArrayIndex );
}
PreviousPropInfo = &PropInfo;
FirstAddition = false;
}
}
DisplayName = FText::FromString(*NewName);
}
else
{
DisplayName = LOCTEXT( "InvalidColumnName", "Invalid Property" );
}
}