unity3d - 在 Update() 中 SetActive 可以吗?
问题描述
我知道统一优化Update()
方法,这就是为什么可以在没有任何条件的情况下设置变量。但是方法呢,尤其是gameObject.SetActive
?当您需要将 GO 活动绑定到某些条件时,它确实很方便,但是它如何影响性能呢?例如,在 UI 中SetActive
会导致画布重绘。但我想如果 Unity 确实优化了Update()
. 那么,是吗?
解决方案
您在 Update 中编写的任何代码都将在每一帧中被调用。一般来说,如果可能的话,我会避免使用 Update 方法。
使用事件和协程,您可以仅在需要时运行代码。它使代码更有效率和可读性。
例如,您可以编写一个仅在玩家被击中时在 PlayerDamaged 事件上运行的协程,而不是在 Update 中的每一帧更新健康条。
如果您的代码/应用程序很小,您不会看到性能上有很大差异,所以没关系,但最好只对真正需要在每一帧调用的代码使用更新。
推荐阅读
- swift - 弹出 ViewController 后如何检查堆栈顶部的 ViewController 是否是特定的?
- python - Cython Memoryview 段错误
- ssl - Kubernetes Ingress SSL 证书问题
- html - 作为电子邮件发送时,如何删除表格行之间的空格?
- php - log_message 在 codeigniter 的应用程序文件夹下不起作用
- angular - 如何以角度制作重叠的头像图标?我可以从中获得有关此内容的任何参考链接
- java - 使用socket时如何在android studio中搜索网络?
- android - 如何在java中将西方日期转换为日本日期?
- python-3.x - 如何在允许图形修改的同时将 tf.Session 移植到 tf.train.MonitoredSession 调用
- php - 类似“类 std 类的对象无法转换为字符串”之类的错误