首页 > 解决方案 > 在 Update() 中 SetActive 可以吗?

问题描述

我知道统一优化Update()方法,这就是为什么可以在没有任何条件的情况下设置变量。但是方法呢,尤其是gameObject.SetActive?当您需要将 GO 活动绑定到某些条件时,它确实很方便,但是它如何影响性能呢?例如,在 UI 中SetActive会导致画布重绘。但我想如果 Unity 确实优化了Update(). 那么,是吗?

标签: unity3d

解决方案


您在 Update 中编写的任何代码都将在每一帧中被调用。一般来说,如果可能的话,我会避免使用 Update 方法。

使用事件和协程,您可以仅在需要时运行代码。它使代码更有效率和可读性。

例如,您可以编写一个仅在玩家被击中时在 PlayerDamaged 事件上运行的协程,而不是在 Update 中的每一帧更新健康条。

如果您的代码/应用程序很小,您不会看到性能上有很大差异,所以没关系,但最好只对真正需要在每一帧调用的代码使用更新。


推荐阅读