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

How do I optimize the spawning of actors in Unreal Engine 4?

本文关键字:引擎 何优化 优化      更新时间:2023-10-16

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

很明显,我想通过在C++中放置相同的逻辑来提高这个过程的性能。但我想先知道几件事,以确保我所做的是正确的。

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

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

我感谢大家花时间阅读本文,并非常感谢任何形式的帮助:)

你不能说C++的SpawnActor更快,因为蓝图的SpawnActor最终导致了C++的Spawn Actor。当然,如果您直接编写C++代码,则可以节省调用几个函数将Blueprint节点路由到C++函数的时间。因此,对于SpawnActor的峰值,我不认为这是因为调用Blueprint SpawnActer,即调用C++不会解决它。

SpawnActor本身也有其成本,因此连续称其为60次肯定会让人大吃一惊。我不太确定SpawnActor有多少开销,但至少我可以猜测,为这些新演员分配内存需要一些时间。此外,如果你的演员模板有很多组件,那么它需要更多的时间。因此,一种常见的技术是使用演员池来预生成一些演员并重用它们。

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