【问题标题】:How does the Unreal Engine 4 Event System work?虚幻引擎 4 事件系统如何工作?
【发布时间】:2020-07-22 06:58:12
【问题描述】:

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

【问题讨论】:

    标签: c++ unreal-engine4


    【解决方案1】:

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

    因此,一般而言,您将拥有一个包含主要事件的类,例如,当在 C++ 类中检测到碰撞时,可能深度足以与物理模块接触。

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

    一旦设置好,当检测到碰撞时,将触发所有绑定的函数,并将作为一个事件工作。

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

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

    希望对理解虚幻事件有所帮助。

    【讨论】:

      猜你喜欢
      • 2019-09-15
      • 1970-01-01
      • 2020-08-09
      • 2020-07-24
      • 2015-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-13
      相关资源
      最近更新 更多