一.首先在APawn里声明 UENUM 和 USTRUCT。UENUM 有两种定义方式
一种是使用命名空间:

还有是继承uint8: 通过申明class类 别名来替代

USTRUCT的定义 上面的第二种有类似但仍然有很多的差异:
首先要有GENERATED_USTRUCT_BODY()这个函数
并且参数要有 宏定义UPRPERTY

二.在 AMyPawn 里定义
Enum的第一种 将命名空间里的枚举作为属性
(使用TEnumAsByte<命名空间:枚举> 定义的名字)

效果如下:

Enum的第二种 enum class类(EMyTestEnum)作为 属性

效果如下:

Struct的 类似 将FMyTestStruct的结构体直接使用

效果如下:

蓝图里也可对两者属性进行读写 因为BlueprintReadWrite

![]()
这就是两者的最基本的用法。


















