如何优化虚幻引擎4中演员的产生?

时间:2016-08-05 07:09:50

标签: c++ unreal-engine4

目前,我正在使用蓝图脚本来生成和删除半个飞行棋子中的大约60个演员。 这会产生帧率峰值,我已经读到这是一个非常繁重的过程。

显然,我想通过在C ++中放置相同的逻辑来提高此过程的性能。 但我想首先了解一些事情,以确保我所做的是对的。

1)C ++中的spawnActor函数本身 - 比蓝图节点更快吗?

2)蓝图的哪种属性,增加产卵的处理时间? 我知道,例如启用物理会增加处理时间,但我还需要考虑更多属性吗?

我感谢所有人花时间阅读本文,并且非常感谢任何帮助:)

2 个答案:

答案 0 :(得分:1)

你不能说C ++的SpawnActor更快,因为Blueprint的SpawnActor最终会导致C ++ SpawnActor。但是当然如果直接编写C ++代码,那么它可以节省调用几个函数将Blueprint节点路由到C ++函数的时间。因此,对于SpawnActor的峰值,我不会因为调用Blueprint SpawnActor而认为它,即调用C ++不会修复它。

SpawnActor本身确实有它的成本,所以连续60次调用肯定会产生尖峰。我不太确定SpawnActor中有多少开销,但至少我猜测为这些新Actors分配内存需要花费一些时间。此外,如果您的Actor模板有很多组件,那么它需要更多时间。因此,一种常见的技术是使用Actor Pool预先生成一些Actors并重用它们。

答案 1 :(得分:0)

C ++总是比蓝图更快,因为最后是基于模板,所以你的编译和错误修复不会很容易。 由于CPU时间的原因,字符数量总是会影响性能,但它没问题。您必须考虑到基于UE4迭代器和专用容器访问字符,因此它们已经过优化且线程安全。