我知道Camera.main使用FindObjectWithTag("MainCamera").GetComponent<Camera>()
找到了主摄像机,因此我不应该太频繁地使用它。但是我的问题是,为什么Unity开发人员如此构建它?
我最近查看了EventSystem
的源代码(类似的属性称为EventSystem.current),在该类中,他们使用了static List<EventSystem>
,其中包含对{{1}的所有引用}的实例效率更高(据我所知,它不会消耗太多内存,因为这些仅仅是引用,每个引用仅占用32位)。
因此,我不明白为什么EventSystem
类不能做到这一点,例如创建2个列表,一个用于不带“ MainCamera”标签的摄像机,一个用于带标签的摄像机,就像在EventSystem中一样,在启用时将实例添加到列表,在禁用时将其删除。
通过这种方式,还将使属性Camera
的效率更高。
有人可以向我解释它吗,我还没有在线找到它,这很有趣(至少对我而言)。
预先感谢