Unity GetComponent <Type>返回值

way*_*way 1 c# game-engine unity-game-engine gameobject

Type从呼叫返回哪种类型的游戏对象

GetComponent<Type>();
Run Code Online (Sandbox Code Playgroud)

如果调用游戏对象附加了多个该类型的对象?

此函数的文档仅说明如果游戏对象存在则返回游标对象,否则返回null.

我有一个带有多个Collider2Ds 的游戏对象,想要知道哪一个会被返回,以及它是否一致.

Dra*_*18s 5

如果连接的多个 Component与指定的Type匹配,Unity将返回一个.但是,不要依赖于此,因为哪一个"第一"可能不在您的控制之下.它将是确定性的,但由于Unity在内部维护,序列化和存储数据的方式,可能会意外地发生变化.

这就是为什么通常不建议您在同一游戏对象上附加多个相同类型的组件(例如碰撞器).如果您需要多个,请使用儿童.

  • 我认为OP知道这一点,但问题是是否存在两个实现`T`的对象,哪一个被返回? (2认同)