为什么Unity如此低效地实施Camera.main

时间:2019-07-18 19:16:02

标签: performance api unity3d camera

我知道Camera.main使用FindObjectWithTag("MainCamera").GetComponent<Camera>()找到了主摄像机,因此我不应该太频繁地使用它。但是我的问题是,为什么Unity开发人员如此构建它?

我最近查看了EventSystem的源代码(类似的属性称为EventSystem.current),在该类中,他们使用了static List<EventSystem>,其中包含对{{1}的所有引用}的实例效率更高(据我所知,它不会消耗太多内存,因为这些仅仅是引用,每个引用仅占用32位)。

因此,我不明白为什么EventSystem类不能做到这一点,例如创建2个列表,一个用于不带“ MainCamera”标签的摄像机,一个用于带标签的摄像机,就像在EventSystem中一样,在启用时将实例添加到列表,在禁用时将其删除。

通过这种方式,还将使属性Camera的效率更高。

有人可以向我解释它吗,我还没有在线找到它,这很有趣(至少对我而言)。

预先感谢

0 个答案:

没有答案