UE的各种标记词

发布时间 2023-04-28 10:06:09作者: 疯狂的凑脚丫
1.ClampMin、ClampMax(最大值、最小值)
只能用在Float和int类型的变量,限制这个值的一个范围
用法:使用Meta进行修饰,与DisplayName一样。

 

2.EditCondition(控制属性显示隐藏)
用在“meta”中,可以让这个参数被所关联的bool变量控制是否在编辑器中显示
常和DisplayAfter一起用,DisplayAfter是在元数据烘培时将自身变量紧跟在目标变量之后。
1 UPROPERTY(Category=Blackboard, EditAnywhere, meta = (EditCondition="bObserveBlackboardValue",DisplayAfter="bObserveBlackboardValue"))
2 float ObservedBlackboardValueTolerance;
3        
4 UPROPERTY(Category = Blackboard, EditAnywhere)
5 uint32 bObserveBlackboardValue : 1;

 

 
3.BlueprintAutocast(节点类型自动转换)
仅供BlueprintLibrary中的静态BlueprintPure函数使用。将自动为函数的返回类型和第一个参数的类型添加强制转换节点。
应该就是在把节点连上去的时候自动进行类型转换,像是FName转FString一样。
1 UFUNCTION(BlueprintPure, meta=(DisplayName = "To String (Name)", CompactNodeTitle = "->", BlueprintAutocast), Category="Utilities|String")
2 static FString Conv_NameToString(FName InName);

 

 
4.CompactNodeTitle(紧凑型节点)
只能用在BlueprintCallable类型的蓝图可用函数中(BlueprintPure包含了BlueprintCallable,也可以用)
上面的低3个BlueprintAutocast 中也有这个标记词,效果就是把节点变得更简洁。
 
 
5.WorldContext
 
 
6.HideCategories(隐藏类别)(用于标记class)
隐藏类的默认值属性中的某些类别。这个词缀比较高深了。不像之前的那些标记词一样,这个词是定义在Blueprint.h中的。
用法:
1 UCLASS(HideCategories=(Replication, Collision, Input, Actor, HLOD, ..., Advanced Events))
2 class XX_API Myclass : Public XXX {}

 

 
7.AdvancedDisplay 自定义细节面板高级下拉列
如下图节点,有一个下拉箭头,函数部分参数被隐藏了起来,怎么做到的?
利用标记字 :AdvancedDisplay 
阐述:属性位于细节面板的高级下拉列表中
用法:以Set Timer By Event为例,简化代码看一下:
UFUNCTION(..., meta=(AdvancedDisplay="InitialStartDelay, InitialStartDelayVariance"))
FTimerHandle SetTimerByEvent(..., float InitialStartDelay, float InitialStartDelayVariance);
 
 
 
8.Keywords(关键字)
设置在蓝图搜索时的关键字,用法:meta “,”分隔多个
meta = (Keywords = "Create, Audio, Runtime, MP3, FLAC, WAV, OGG, Vorbis")
 
 
 
9.Hidden(隐藏值枚举)
在C++定义的枚举中,可以用UMETA宏来处理一些事情,比如重命名值DisplayName
还可以隐藏一个值,不然某个值在蓝图显示就用Hidden。
Invalid UMETA(DisplayName = "invalid (not defined format, internal use only)", Hidden)
这样,这个枚举中的Invalid值就不会显示在蓝图枚举的下拉列表中

 ++