如何优化虚幻引擎4中演员的生成
How do I optimize the spawning of actors in Unreal Engine 4?
目前,我正在使用一个蓝图脚本来生成和删除一个飞行棋子半径内的大约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迭代器和专用容器的字符,因此它们已经得到了优化,并且是线程安全的。
相关文章:
- 空基优化子对象的地址
- 函数何时会在c++中包含stack_Unwind_Resume调用
- 关闭||运算符优化
- 如何解决gcc编译器优化导致的centos双编译器设置中的分段错误
- 当使用带有VS2019或VSCode的虚幻引擎4.24.2时,我如何修复这些错误的Intellisense错误
- Python中的for循环与C++有何不同
- Unity在虚幻引擎4中的"Vector3.Slerp"等效C++?
- 返回值优化:显式移动还是隐式
- 如何创建从Maya(或类似程序)到虚幻引擎的自定义数据导出插件
- 人脸跟踪arduino代码的优化
- 使用仅使用一次的变量调用的复制构造函数.这可能是通过调用move构造函数进行编译器优化的情况吗
- 纯函数,为什么没有优化
- 为什么大多数 pair 实现默认不使用压缩(空基优化)?
- 在虚幻引擎中删除NXOpen对象时崩溃
- 如何以优化的方式同时迭代两个间距不相等的数组
- 小字符串优化(调试与发布模式)
- 浮点定向舍入和优化
- 引擎节点:未定义的符号:_ZTV6Config
- Agora.io 虚幻引擎插件构建错误
- 如何优化虚幻引擎4中演员的生成