UE4学习笔记2——宏、类型等基础总结

其实文档都有,做个整理方便查询:

类类型UObjectAActorUActorComponent 和 UStruct):

UObject不常用此类结合 UClass (包含UObject派生类实例的所有元数据)提供引擎中最重要的若干基础服务:
  • 属性和方法反射
  • 属性序列化
  • 垃圾回收
  • 按命名查找 UObject
  • 可配置属性数值
  • 属性和方法网络支持

AActor拥有一系列事件,可在生命周期中进行调用:

  • BeginPlay - 对象首次出现在游戏进程中时调用
  • Tick - 每帧调用一次,在一段时间内执行操作
  • EndPlay - 对象离开游戏进程时调用

UActorComponent 通常为 AActor 指定的是与其在游戏中全局作用相关的高级目标,而 UActorComponent 通常执行的是支持这些高级目标的单个任务。组件也可附着到其他组件,或为 Actor 的根组件。组件只能附着到一个父组件或 Actor,但可被多个子组件附着。

  • RootComponent - 这是在 AActor 组件树中拥有顶层组件的 AActor 成员
  • Ticking - 组件作为拥有 AActor Tick() 的部分被点击

UStruct使用 UStruct 时不必从任意特定类进行延展,只需要使用 USTRUCT() 标记结构体,编译工具将执行基础工作。和 UObject 不同,UStruct 不会被垃圾回收。如创建其动态实例,则必须自行管理其生命周期。UStruct 为纯旧式数据类型。它们拥有 UObject 反射支持,以便在虚幻编辑器、蓝图操作、序列化和网络通信中进行编辑。

反射系统:

UE4 使用其自身的反射实现,可启用动态功能,如垃圾回收、序列化、网络复制和蓝图/C++ 通信。这些功能为选择加入,意味着您需要为类型添加正确的标记,否则引擎将无视类型,不生成反射数据。

UCLASS() - 告知虚幻引擎生成类的反射数据。类必须派生自 UObject。常用说明符如下:

  • Blueprintable - 此类可由蓝图延展。
  • BlueprintReadOnly - 此属性只可从蓝图读取,不可写入。
  • Category - 定义此属性出现在编辑器 Details 视图下的部分。用于组织。
  • BlueprintCallable - 可从蓝图调用此函数。
USTRUCT() - 告知虚幻引擎生成结构体的反射数据。UFUNCTION 说明符列表
GENERATED_BODY() - UE4 使用它替代为类型生成的所有必需样板文件代码。
UPROPERTY() - 使 UCLASS 或 USTRUCT 的成员变量可用作 UPROPERTY。UPROPERTY 用途广泛。它允许变量被复制、被序列化,并可从蓝图中进行访问。垃圾回收器还使用它们来追踪对 UObject 的引用数。UPROPERTY 说明符列表

UFUNCTION() - 使 UCLASS 或 USTRUCT 的类方法可用作 UFUNCTION。UFUNCTION 允许类方法从蓝图中被调用,并在其他资源中用作 RPC。UFUNCTION 说明符列表

UCLASS() 范例:

#include "MyObject.generated.h"

UCLASS(Blueprintable)
class UMyObject : public UObject
{
    GENERATED_BODY()

public:
    MyUObject();

    UPROPERTY(BlueprintReadOnly, EditAnywhere)
    float ExampleProperty;

    UFUNCTION(BlueprintCallable)
    void ExampleFunction();
};

首先注意 - “MyClass.generated.h”文件已包含。虚幻引擎将生成所有反射数据并将放入此文件。必须在声明类型的头文件中将此文件作为最后的 include 包含。

同时可以在标记上添加额外的说明符,通过说明符可对类型拥有的特定行为进行说明。

类命名前缀

虚幻引擎为您提供在构建过程中生成代码的工具。这些工具拥有一些类命名规则。如命名与规则不符,将触发警告或错误。下方的类前缀列表说明了命名的规则。

  • 派生自 Actor 的类前缀为 A,如 AController。
  • 派生自 对象 的类前缀为 U,如 UComponent。
  • 枚举 的前缀为 E,如 EFortificationType。
  • 接口 类的前缀通常为 I,如 IAbilitySystemInterface。
  • 模板 类的前缀为 T,如 TArray。
  • 派生自 SWidget(Slate UI)的类前缀为 S,如 SButton。
  • 其余类的前缀均为 字母 F ,如 FVector。

数字类型

因为不同平台基础类型的尺寸不同,如 shortint 和 long,UE4 提供了以下类型,可用作替代品:

  • int8/uint8 :8 位带符号/不带符号 整数

  • int16/uint16 :16 位带符号/不带符号 整数

  • int32/uint32 :32 位带符号/不带符号 整数

  • int64/uint64 :64 位带符号/不带符号整数

标准 浮点 (32-bit) 和 双倍(64-bit)类型也支持浮点数。

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值