gpt4 book ai didi

c# - 在具有多个 T 类型组件的游戏对象上调用 GetComponent 时,Unity 如何决定返回哪个组件?

转载 作者:太空宇宙 更新时间:2023-11-03 18:22:18 24 4
gpt4 key购买 nike

如果我有一个 GameObject多个Component附加到它的相同类型的类(出于示例目的,我们称此类型为 HingeJoint),其中 HingeJoint如果我调用函数 GetComponent<HingeJoint>(),我会得到组件在我的 GameObject

根据我的研究,this answer声明 Unity 将简单地返回 Component 数组中的第一个匹配项s--但是,答案只是基于回答者自己的游戏引擎设计的有根据的猜测,该设计努力模仿 Unity,而不是 Unity 实际功能的权威来源。

最佳答案

Unity 中的每个对象及其子对象都分层放置在一个集合中。您可以将其称为“所见即所得”,因为如您所见,场景层次结构中的每个对象都按照它们在该列表中显示的相同顺序加载。同样的事情也适用于组件,这也是 Transform 组件被放置在所有其他组件之上的主要原因。

GetComponent 将返回从列表顶部看到的 Components 集合中的第一项。为准确确定哪个组件将被退回,您可以在检查器 View 中根据需要订购它们。


来自documentation page :

The order you give to components in the Inspector window is the order you need to use when querying components in your user scripts. If you query the components programmatically, you’ll get the order you see in the Inspector.

关于c# - 在具有多个 T 类型组件的游戏对象上调用 GetComponent<T> 时,Unity 如何决定返回哪个组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48538396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com