虚幻引擎4事件系统如何工作?

问题描述 投票:0回答:1

没有深入研究代码库,我想问一下虚幻引擎4中如何处理自定义事件,事件分派器以及一般的事件处理机制?这是我所见过的最好的,这是无可挑剔的。它实际上允许从其他任何地方调用任何东西!他们使用事件队列数据结构还是类似的操作原理?在UE4中用于设计此事件系统的基础数据结构和算法是什么?换句话说,(自定义)事件的创建,删除,设置和调度。任何人对此都知道一些事情,请分享。这是一个理论问题,但编程思想主要是C ++。

c++ unreal-engine4
1个回答
0
投票

主要思想是使用委托(或函数指针),虚幻有其自己的委托类实现,它基本上存储了成对的数组。

因此,用通用术语来说,您将拥有一个包含主要事件的类,例如,当在C ++类中检测到碰撞时,该类可能足够深,可以与物理模块联系。

此类将具有一个“委托”,可以使用函数指针接收任何对象。例如:YourPlayerBlueprint,OnCollide(params)。 (除了可以添加要调用的新功能之外,还可以将其删除)。

一旦设置好此功能,当检测到冲突时,将触发所有绑定的功能并作为事件工作。

此外,(这是猜测)所有功能都必须独立,以便可以并行运行以提高性能。

如果您对委托和函数指针更感兴趣,我建议检查此“教程/说明”https://blog.molecular-matters.com/2011/09/19/generic-type-safe-delegates-and-events-in-c/

希望我能帮助您了解虚幻的事件。

© www.soinside.com 2019 - 2024. All rights reserved.