【发布时间】:2018-07-26 16:37:51
【问题描述】:
调用返回的是哪个Type类型的游戏对象
GetComponent<Type>();
如果调用游戏对象附加了多个该类型的对象?
这个函数的文档只说如果游戏对象存在则返回,否则返回 null。
我有一个包含多个Collider2Ds 的游戏对象,我想知道哪个会被返回,以及它是否一致。
【问题讨论】:
标签: c# unity3d game-engine gameobject
调用返回的是哪个Type类型的游戏对象
GetComponent<Type>();
如果调用游戏对象附加了多个该类型的对象?
这个函数的文档只说如果游戏对象存在则返回,否则返回 null。
我有一个包含多个Collider2Ds 的游戏对象,我想知道哪个会被返回,以及它是否一致。
【问题讨论】:
标签: c# unity3d game-engine gameobject
如果附加了多个与指定类型匹配的组件,Unity将返回第一个个。但是,不要依赖于此,因为哪个是“第一”可能不在您的控制之下。它将是确定性的,但可能会因 Unity 在内部维护、序列化和存储数据的方式而发生意外变化。
这就是为什么通常不建议您将多个相同类型的组件(例如碰撞器)附加到同一个游戏对象的原因。如果您需要多个,请使用儿童。
【讨论】:
T 的对象,返回哪一个?