我试图在益智游戏中加载不同的关卡,但是当我隐藏未使用的关卡时,GameObject.Find();
不起作用。有没有一种方法可以用此功能代替可以找到隐藏对象的功能?
嗯,它很脏,但是如果您以前没有对该对象的引用,则可以在Resources类下使用this方法:public static T[] FindObjectsOfTypeAll();
从文档示例:
与Object.FindObjectsOfType相反,此函数还将列出 disabled对象。
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
public class ExampleScript : MonoBehaviour
{
List<GameObject> GetAllObjectsOnlyInScene()
{
List<GameObject> objectsInScene = new List<GameObject>();
foreach (GameObject go in Resources.FindObjectsOfTypeAll(typeof(GameObject)) as GameObject[])
{
if (!EditorUtility.IsPersistent(go.transform.root.gameObject) && !(go.hideFlags == HideFlags.NotEditable || go.hideFlags == HideFlags.HideAndDontSave))
objectsInScene.Add(go);
}
return objectsInScene;
}
}