Unity 获取场景中所有目标对象(包括不激活的对象)

using UnityEngine;
using UnityEditor;
using System.Collections.Generic;

public class ExampleScript : MonoBehaviour
{
    // 获取场景中所有目标对象(包括不激活的对象)不包括Prefabs:

    List<GameObject> GetAllObjectsInScene()
    {
        List<GameObject> objectsInScene = new List<GameObject>();

        foreach (GameObject go in Resources.FindObjectsOfTypeAll(typeof(GameObject)) as GameObject[])
        {
            if (go.hideFlags == HideFlags.NotEditable || go.hideFlags == HideFlags.HideAndDontSave)
                continue;

            if (!EditorUtility.IsPersistent(go.transform.root.gameObject))
                continue;

            objectsInScene.Add(go);
        }

        return objectsInScene;
    }
}

参考:Resources.FindObjectsOfTypeAll

猜你喜欢

转载自www.cnblogs.com/dream-follower/p/10777532.html