当游戏对象已经处于活动状态时调用 gameObject.SetActive(true) 的性能?

Bri*_*dan 5 unity-game-engine

调用MyAlreadyActiveGameObject.SetActive(true)一吨是否有任何性能问题,例如每帧一次?

换句话说,值得gameObject.active向上拉支票吗?或缓存/检查_alreadyActive?

rut*_*ter 0

如有疑问,请先尝试简单的方法,看看是否有效。有时值得关注优化,但您应该检查是否有必要付出努力。Unity 的内置分析工具可以让您估计每帧中每个操作花费的时间。

MyAlreadyActiveGameObject.SetActive(true)调用大量数据(例如每帧一次)是否存在性能问题?

这确实需要时间,但不多。如果您每帧执行数百或数千次此操作,则可能值得担心。在那之前,这种担忧应该可以忽略不计。

如果您担心大量对象的性能,您可以考虑暂停远处、视野之外等对象的昂贵行为。

  • 如果一个对象非常复杂并且有很多子对象,那么调用 SetActive 的行为可能会非常昂贵。激活一个对象可能需要很多秒的时间。 (3认同)