代码检查:'Camera.main' 开销较大。
Camera.main 属性会返回第一个被 "MainCamera" 标记的摄像机。 在 Unity 2019.4.9 之前的版本中,这是通过调用 FindGameObjectsWithTag 来实现的。 结果不会被缓存,因此频繁访问此属性会影响性能。 建议将摄像机缓存到字段中,并在 启动 或 Awake 中设置其值。
自 Unity 2019.4.9 起, Camera.main 现在更快了。 在内部,Unity 会缓存具有 "MainCamera" 标记的 GameObject 实例,并且 Camera.main 会返回缓存中第一个启用的对象。 虽然现在速度更快,但实际已类似于调用 GetComponent (包括转为原生代码),仍建议缓存该值。
当在性能关键场景中访问 Camera.main 属性时,此检查会为其添加性能指示器高亮显示。 JetBrains Rider 还通过 Alt+Enter 提供上下文操作,将结果缓存到 Awake 或 启动 方法中。
请参阅 文档 ,了解 Camera.main ,以及支持文档 "Camera.main is slow"。 Unity 2019.4.9 的发行说明 简要说明:"Camera.main 查询速度显著提升"。 这篇关于 Unity 2020.2 性能改进的博客文章 包含有关 "优化的 Camera.main " 的内容。
2026年 5月 8日