meta UENUM USTRUCT 补充说明

meta定义,蓝图UI操作中限制数值最大最小范围

UPROPERTY(EditAnywhere, Category = "Yeomai | Var001", meta = (ClampMin = 0.0f, ClampMax = 10.0f, UIMin = 0.0f, UIMax = 10.0f));
int32 intVariable;

meta其他一些常见属性标记

  1. BlueprintReadOnly: 只读属性,可以在蓝图中读取但不能写入。
  2. EditDefaultsOnly: 只能在默认值面板中编辑,无法在实例面板中编辑。
  3. VisibleAnywhere: 属性在编辑器中可见,但不可编辑。
  4. Category: 用于对属性进行分类,显示在编辑器中的不同面板中。
  5. DisplayName: 指定属性在编辑器中显示的名称。
  6. ToolTip: 提供属性的工具提示信息。
  7. Transient: 该属性不会被保存到实例或蓝图中,只存在于内存中。
  8. SaveGame: 该属性会被保存到游戏存档中。
  9. AssetRegistrySearchable: 允许该属性在资产注册表搜索中可见。
  10. NoClear: 防止在蓝图中清除该属性。
  11. SimpleDisplay: 在编辑器中以简单的方式显示该属性。
  12. AdvancedDisplay: 在编辑器中以高级方式显示该属性。


//蓝图生成时暴露(便于连接使用)
UPROPERTY(EditAnywhere,BlueprintReadWrite,Category ="MyExposeOnSpawn", meta =(ExposeOnSpawn ="ExposeOnSpawnValue"))
float MyHealth;

2024-04-06-23-25-36.png

枚举的另一种声明方式

UENUM (BlueprintType)
enum class EMyTestEnum :uint8
{
OneType UMETA(DisplayName = "OneType"),
TwoType UMETA(DisplayName = "TwoType"),
ThreeType UMETA(DisplayName = "ThreeType"),
};

//对应的枚举定义
UPROPERTY(EditAnywhere,BlueprintReadWrite,Category ="MyEnum")
EMyTestEnum MyCustomEnum1;


结构体也可以接收数据表格

#include "Engine/Classes/Engine/DataTable.h"

USTRUCT(BlueprintType)
//继承于FTableRowBase类,所以需要引入 DataTable.h 数据表格头文件
struct FMyDateTableStruct: public FTableRowBase
{
GENERATED_USTRUCT_BODY()
UPROPERTY (EditAnywhere, BlueprintReadWrite, Category ="MyTestDataTableStruct")
float Health;

UPROPERTY (EditAnywhere, BlueprintReadWrite, Category ="MyTestDataTableStruct")
FString Name;

UPROPERTY (EditAnywhere, BlueprintReadWrite, Category ="MyTestDataTableStruct")
int32 Level;
}

2024-04-06-23-27-41.png

2024-04-06-23-27-50.png