1.7 KiB
1.7 KiB
Icon
- 功能描述: 设定FRigUnit蓝图节点的图标。
- 使用位置: USTRUCT
- 引擎模块: RigVMStruct
- 元数据类型: string="abc"
- 限制类型: FRigUnit
- 常用程度: ★★
设定FRigUnit蓝图节点的图标。
根据源码中的注释得知,Icon的格式是“StyleSetName|StyleName|SmallStyleName|StatusOverlayStyleName”,最后两项是可选的,可参考FSlateIcon的更多介绍。
测试代码:
USTRUCT(meta = (DisplayName = "MyRigIcon",Icon="EditorStyle|GraphEditor.Macro.ForEach_16x"))
struct INSIDER_API FRigUnit_MyRigIcon: public FRigUnit
{
GENERATED_BODY()
RIGVM_METHOD()
virtual void Execute() override;
public:
UPROPERTY(meta = (Input))
float MyFloat_Input = 123.f;
UPROPERTY(meta = (Output))
float MyFloat_Output = 123.f;
};
测试效果:
可见加了Icon之后,左上角图标变成了其他,不是默认的f函数目标。
原理:
FSlateIcon URigVMEdGraphNode::GetIconAndTint(FLinearColor& OutColor) const
{
if(MetadataScriptStruct && MetadataScriptStruct->HasMetaDataHierarchical(FRigVMStruct::IconMetaName))
{
FString IconPath;
const int32 NumOfIconPathNames = 4;
FName IconPathNames[NumOfIconPathNames] = {
NAME_None, // StyleSetName
NAME_None, // StyleName
NAME_None, // SmallStyleName
NAME_None // StatusOverlayStyleName
};
// icon path format: StyleSetName|StyleName|SmallStyleName|StatusOverlayStyleName
// the last two names are optional, see FSlateIcon() for reference
MetadataScriptStruct->GetStringMetaDataHierarchical(FRigVMStruct::IconMetaName, &IconPath);
return FSlateIcon(IconPathNames[0], IconPathNames[1], IconPathNames[2], IconPathNames[3]);
}
}