Unreal 委托Delegate

2019-12-26  本文已影响0人  Mr_约科

1. 核心关键词

Declare DECLARE 声明

Delegate DELEGATE 委托

Multicast MULTICAST 多播

Dynamic DYNAMIC 动态

OneParams 参数数量

RetVal 返回值

C# Delegate 委托 与 C/C++的函数指针

2. 委托的使用理念

见下参考文章的"委托的使用理念"。降低耦合度。

参考文章
https://docs.unrealengine.com/zh-CN/Programming/UnrealArchitecture/Delegates/index.html
https://blog.csdn.net/qq_29523119/article/details/84893503
https://blog.csdn.net/zzk1995/article/details/48224465
https://blog.csdn.net/y1196645376/article/details/51408114

3. Unreal 委托实战

所有的注册都仅 注册一次,除非 Remove掉,否则一直在。因为,每注册一次都生成一个对象,多次注册,多个对象。

(1)委托中嵌套委托

(2)仅在引擎第一次启动调用

这次引擎的启动 在某些 设置上依赖上一次引擎启动,是通过 .ini配置文件 将彼此之间进行的联系。 .ini文件可为 引擎配置文件 也可为 项目配置文件。引擎配置插件大家都统一,项目配置文件因项目的不同而存在差异。

① 对当前关卡名字进行判断,是否为 “Untitled_1”,名字来自于项目设置下的编辑器开始地图。

(3)引擎第一帧

(4)新建关卡的hook

FEditorDelegates::MapChange

此委托在 Map_Load的时候被广播,即广播的时间节点有两个:
(1)引擎启动加载地图的时;
(2)新建关卡的时;
所以将此事件hook到,第一帧委托下,就保证了 第二个时间节点生效。
(3)在内容浏览器里打开 已存在的关卡,也会被广播。

(5)注册函数 的 Add 与 Remove

上一篇下一篇

猜你喜欢

热点阅读