【问题标题】:Unity GetComponent<Type> return valueunity GetComponent<Type> 返回值
【发布时间】:2018-07-26 16:37:51
【问题描述】:

调用返回的是哪个Type类型的游戏对象

GetComponent<Type>();

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

这个函数的文档只说如果游戏对象存在则返回,否则返回 null。

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

【问题讨论】:

    标签: c# unity3d game-engine gameobject


    【解决方案1】:

    如果附加了多个与指定类型匹配的组件,Unity将返回第一个个。但是,不要依赖于此,因为哪个是“第一”可能不在您的控制之下。它将是确定性的,但可能会因 Unity 在内部维护、序列化和存储数据的方式而发生意外变化。

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

    【讨论】:

    • 我认为 OP 知道这一点,但问题是是否存在两个实现 T 的对象,返回哪一个?
    • 感谢您的回复!正如建议的那样,我能够重组我的游戏对象并使用子游戏对象来避免具有相同类型的多个组件!
    猜你喜欢
    • 1970-01-01
    • 2016-11-05
    • 1970-01-01
    • 2021-05-01
    • 2016-09-06
    • 2015-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多