团结:transform.GetComponent与。GameObject.GetComponent?

Bri*_*ark 2 unity-game-engine

我想知道转换和游戏对象getcomponents之间有什么区别。

我在这里查看了此资源:https : //answers.unity.com/questions/1360282/what-is-the-difference-between-gameobjectgetcompon.html

它指出:“最后,两者是相同的”

两者之间肯定有区别吗?

rut*_*ter 6

它们是等效的。

请记住,Unity的基于组件的体系结构:场景中存在的几乎所有东西都是GameObject,通常会附加一个或多个组件。组件必须附加到GameObject才能存在。

GetComponent方法实际上是方法的整个系列,允许脚本查找对特定组件的引用。

如果您调用GetComponentGameObject(例如gameObject.GetComponent),它将找到一个附加到该GameObject的匹配组件。

如果调用GetComponentComponent(例如transform.GetComponent),它将找到该组件所连接的GameObject,然后找到该GameObject所连接的匹配Component。这是相同的结果,但是它是方便的快捷方式,可以节省您在gameObject整个脚本中放置引用的工作。

从技术上讲,这些是单独的方法,但是结果和语义本质上是相同的。在实践中,您可以使用您更喜欢的任何一种形式。