C# GetComponent()与访问字典之间是否存在性能差异?
我想在触发输入时访问游戏对象的组件。我可以使用C# GetComponent()与访问字典之间是否存在性能差异?,c#,performance,dictionary,unity3d,C#,Performance,Dictionary,Unity3d,我想在触发输入时访问游戏对象的组件。我可以使用GetComponent(),或者我可以在Awake()中创建游戏对象与字典中CustomClass的连接,这样我就可以访问CustomClass,如下所示:字典[gameobject] 两者之间有什么性能差异吗 A提供了固定的时间(用简单的英语:快速)查找。假设设置和保持最新不需要太多工作,它应该比更动态的查找更快 然而,我确实想知道这是否是一个使用.GetComponent()进行OnTiggerEnter的 我建议保存优化,如Dictionar
GetComponent()
,或者我可以在Awake()
中创建游戏对象与字典中CustomClass的连接,这样我就可以访问CustomClass,如下所示:字典[gameobject]
两者之间有什么性能差异吗 A提供了固定的时间(用简单的英语:快速)查找。假设设置和保持最新不需要太多工作,它应该比更动态的查找更快
然而,我确实想知道这是否是一个使用.GetComponent()
进行OnTiggerEnter的
我建议保存优化,如
Dictionary[Component]
,用于更多重复性任务,如更新场景中的每个AI脚本或增加每个刚体的质量 这听起来像是过早优化的例子。你为什么在乎什么更快?你应该只关心什么适合你现在的需要。一旦发现瓶颈,就应该对代码进行分析,最后对@user2674389进行优化。你应该对代码使用代码块,而不是对与代码无关的项目使用强调。如果你想强调一个单词,请使用斜体。@Servy谢谢,我尽量记住它。:-)我同意这是过早的优化,但为什么这个问题已经解决了呢?关于“什么更快”的问题绝对不是“基于意见”,你可以进行实验并确定结果。@golergka该标志可能不正确,但该问题仍应关闭/保留。OP在测试性能方面与我们其他人一样有能力。如果不是,那完全是另一个问题。