行情> 正文

虚幻C++中的标记宏

2023-06-28 22:10:58 来源:哔哩哔哩

虚幻C++中的标记宏,用于标记从UObject派生的类,使得UObject处理系统能够识别到他们,以实现垃圾回收(GC)、蓝图C++通信。用一句简单的话来宏观概括虚幻C++中的标记宏的作用那就是:使自己写的与虚幻引擎无缝衔接。


(相关资料图)

几个典型的标记宏:(例如我们的项目名称为MyProject,在该项目中创建一个继承自UObject名为UMyObject的类)

1.#include” MyObject (自己创建的类的头文件名称).generated”

我们在虚幻引擎中创建任何一个类,系统会为我们自动生成一个头文件,拥有这个头文件即意味着加入了反射系统。需要注意的是这个头文件必须是最后一个被引入的头文件,因为此头文件需要了解其他类,所以放到最后。

(描述指令,描述指令,…)

使虚幻引擎能识别自己创建的类(UMyObject)

MYPROJECT_API UMyObject : public UObject

MYPROJECT_API将UMyObject类公开到其他模块

_BODY()

该宏不获取参数,但会对类进行设置,以支持引擎要求的基础架构,该宏将成员访问等级设为”public”

(指令,指令,…)

用于标记函数

几个常用指令:

BlueprintCallable,该函数可以在蓝图中调用

BlueprintNativeEvent,此函数可在蓝图中重写,若蓝图重写则函数实现在蓝图中,若没有重写,则函数实现在(函数名_Implementation)上。

BlueprintPure,构建一个获取对象数据的纯函数,所以被标记函数一定要有有效返回值。蓝图纯函数不在执行队列中,只能传递数据。

Category,此函数在蓝图中分类

(指令,指令,…)

用于标记对象,如果希望变量可以在蓝图中被操作,则应该放入公有域或保护域,不能放在私有域。

几个常用指令:

BlueprintReadOnly,该属性在蓝图中只读

BlueprintReadWrite,蓝图中可读可写

EditAnywhere,在引擎编辑器窗口和细节面板中均可编辑

EditDefaultsOnly,在引擎编辑器窗口可以编辑,但细节面板中不可编辑

VisibleAnywhere,属性窗口可见,但不可编辑

VisibleDefaultsOnly,只能在原型蓝图编辑器属性窗口中见,不可编辑

Category,变量在蓝图中分类

meta,元数据说明符,说明标记的函数或对象与虚幻引擎的各种关系

使我们可以对函数或属性进行别名操作

(完)

留下个赞呗~

关键词:

上一篇:每日消息!致尚科技(301486.SZ):回拨后网上定价发行的中签率为0.02999%

下一篇:最后一页

  • 资讯
  • 业界
  • 行情