网站 asp php,建网站卖饮料,合肥网站建设司图,谷歌优化工具目录
一#xff0c;实现一个UStruct
二#xff0c;Struct Specifiers
三#xff0c;最佳做法与技巧 结构体#xff08;Struct#xff09;是一种帮助组织和操作相关属性的数据结构#xff1b;在引擎中#xff0c;结构体会被引擎反射系统识别为 UStruct#xff0c;但不…目录
一实现一个UStruct
二Struct Specifiers
三最佳做法与技巧 结构体Struct是一种帮助组织和操作相关属性的数据结构在引擎中结构体会被引擎反射系统识别为 UStruct但不属于UObject生态圈且不能在UClasses内部使用 在相同的数据布局下 UStruct 比 UObject 能更快创建 UStruct支持 UProperty但它不由垃圾回收系统管理不能提供 UFunction 一实现一个UStruct 要把一个结构体变成 UStruct遵循以下步骤 打开要定义结构体的 header (.h) 文件 将 USTRUCT 宏放在结构体定义的上方 将 GENERATED_BODY() 宏作为定义的第一行
USTRUCT([Specifier, Specifier, ...])
struct FStructName
{GENERATED_BODY()
};
注可以用UPROPERTY来标记结构体的相关变量使其在虚幻反射系统 Unreal Reflection System和蓝图脚本Blueprint Scripting中可见 二Struct Specifiers Atomic表示该结构体应始终被序列化为一个单元不会为该类创建自动生成的代码标头仅用于解析元数据BlueprintType将此结构体作为一种类型公开可用于蓝图中的变量NoExport将不会为该类创建自动生成的代码标头仅用于解析元数据 三最佳做法与技巧 UStruct 可以使用引擎的智能指针smart pointer和垃圾回收系统以防止垃圾回收删除 UObjects结构体最好用于简单数据类型对于更复杂的交互可使用 UObject 或 AActor 子类来代替UStructs 不可以 用于复制但 UProperty 变量 可以 用于复制引擎可自动为结构体创建Make和Break函数 Make函数出现在任何带有 BlueprintType 标签的 Ustruct 中如在UStruct中至少有一个 BlueprintReadOnly 或 BlueprintReadWrite 属性Break函数就会出现Break函数创建的纯节点为每个标记为 BlueprintReadOnly 或 BlueprintReadWrite 的资产提供一个输出引脚