目录
VisibleDefaultsOnly:仅在Class Defaults可见
VisibleInstanceOnly:仅在实例化Detail可见
EditInstanceOnly:可通过属性窗口进行编辑,但只能在实例上进行,不能在原型上进行
VisibleAnywhere:Class Defaults 和 实例化 Detail 可见
EditDefaultsOnly:仅在 Class Defaults 可编辑
EditAnywhere:Class Defaults 和 实例化 Details 可编辑
BlueprintReadWrite:蓝图读写,Get和Set
用于UE反射系统,属性使用C++变量语法声明,前面用UPROPERTY()宏来定义属性元数据和变量说明符
UPROPERTY([specifier, specifier, ...], [meta(key=value, key=value, ...)])
Type VariableName;
示例
- UENUM(BlueprintType)
- enum class EColorBits1 :uint8
- {
- ECB_Red,
- ECB_Green,
- ECB_Blue,
- };
-
- //使用"bitflags"元标记来创建UENUM,实际使用似乎没差别
- UENUM(BlueprintType, Meta = (Bitflags))
- enum class EColorBits2 :uint8
- {
- ECB_Red,
- ECB_Green,
- ECB_Blue,
- };
控制属性与引擎和编辑器的相处方式
常用说明符:
- UPROPERTY(VisibleDefaultsOnly)
- int32 VisibleDefaultsOnlyInt;


- UPROPERTY(VisibleInstanceOnly)
- FVector VisibleInstanceOnlyVector;


- UPROPERTY(VisibleAnywhere)
- FString VisibleAnywhereString;

- UPROPERTY(EditDefaultsOnly)
- int32 EditDefaultsOnlyInt;

- UPROPERTY(EditAnywhere)
- FString EditAnywhereString;

- UPROPERTY(BlueprintReadOnly)
- int32 intValue_BlueprintReadOnly;

- UPROPERTY(BlueprintReadWrite)
- int32 intValue_BlueprintReadWrite;

- UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="TopCategory")
- int32 intValue1;
-
- UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "TopCategory|SubCategory")
- int32 intValue2;

- DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FNotifyPawnChange, float, PawnHpPercent, float, PawnPhysicalShieldPercent, float, PawnMageShieldPercent);
-
- //蓝图中可绑定委托
- UPROPERTY(BlueprintAssignable)
- FNotifyPawnChange NotifyPawnChange;

声明类、接口、结构体、列举、列举值、函数,或属性时,可添加 元数据说明符 来控制其与引擎和编辑器各方面的相处方式。每一种类型的数据结构或成员都有自己的元数据说明符列表
常见说明符
- UPROPERTY(EditAnywhere,BlueprintReadWrite, meta = (DisplayName="UseOffset1、2 标志位") )
- bool bUseOffset;
-
- UPROPERTY(EditAnywhere, meta = (DisplayName = "ContitionValue 控制 offset3"))
- int32 ContitionValue;
-
- UPROPERTY(EditAnywhere, meta = (DisplayName = "ContitionColorBits 控制 offset4"))
- EColorBits1 ContitionColorBits;
-
- UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (EditCondition = "bUseOffset"))
- float Offset1;
-
- UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (EditCondition = "!bUseOffset"))
- float Offset2;
-
- UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (EditCondition = "ContitionValue>0"))
- float Offset3;
-
- UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (EditCondition = "ContitionColorBits==EColorBits1::ECB_Green"))
- float Offset4;

- UPROPERTY(EditAnywhere)
- FName ChineseName UMETA(DisplayName="中文名");
-
- UPROPERTY(EditAnywhere)
- float Weight UMETA(DisplayName = "体重") = 65.0f;
-
- UPROPERTY(EditAnywhere)
- EColorBits1 FavoriteColorBits UMETA(DisplayName = "最喜欢的颜色")=EColorBits1::ECB_Blue;

参考链接:
Unreal Engine UProperties | 虚幻引擎5.0文档
【UE4 C++ 基础知识】<1> UPROPERTY宏、属性说明符、元数据说明符 - 砥才人 - 博客园 (cnblogs.com)