在非活动的游戏对象中也可以找到

时间:2016-07-28 11:24:49

标签: c# unity3d

我正在使用

GameObject.Find("Name");

但它只搜索活动的游戏对象是否有任何选项可用于搜索非活动对象。

我想搜索名称不带标签名称的对象。

1 个答案:

答案 0 :(得分:0)

无法使用GameObject.Find按名称搜索非活动游戏对象。 您需要找到替代解决方案。

以下是一些可以找到游戏对象的简单方法。

  1. 假设游戏对象有一个父级,并且你有一个参考,你可以使用Transform.Find,因为它会返回

    parentGameObject.transform.Find("Name").gameObject;

  2. GameObject.FindObjectOfType<T>();

    此方法很慢,绝不应在Update

    中调用

    您可以在游戏对象上找到任何组件类型,这样您就可以使用小型脚手架组件来查找对象

  3. 使用SerializedField创建编辑器参考

  4. 例如

    [SerializedField]
    private GameObject myObject
    
    1. 如果你真的需要使用Find,最初让你的游戏对象处于活动状态,做一些初始化并存储对游戏对象的引用,然后使其处于非活动状态。