我想在触发器输入时访问 GameObject 的组件。我可以使用GetComponent<CustomClass>()
,或者我可以Awake()
在字典中的 GameObjects 与 CustomClass 的连接处创建,因此我可以按如下方式访问 CustomClass Dictionary[gameobject]
:
两者之间有性能差异吗?
我想在触发器输入时访问 GameObject 的组件。我可以使用GetComponent<CustomClass>()
,或者我可以Awake()
在字典中的 GameObjects 与 CustomClass 的连接处创建,因此我可以按如下方式访问 CustomClass Dictionary[gameobject]
:
两者之间有性能差异吗?
使用.GetComponent()
OnTriggerEnter 应该没有任何问题 :: OnTriggerEnter 的物理计算很可能是资源密集型的 10 倍以上
我会建议保存优化,例如Dictionary[Component]
更多重复性任务,例如更新场景中的每个 AI 脚本或增加每个刚体的质量。
ADictionary
提供恒定时间(用简单的英语:快速)查找。假设设置和保持最新的工作量不大,它应该比 快GetComponent
,这是一种更动态的查找。
但是,我确实想知道这是否是过早的优化。