Version: 2021.3

EditorUtility.CollectDeepHierarchy

切换到手册
public static Object[] CollectDeepHierarchy (Object[] roots);

参数

roots 将开始执行搜索的对象数组。

返回

Object[] 在层级上与搜索数组关联的对象数组。

描述

收集层级视图中以每个指定对象为根对象的所有对象。

这对于使整个游戏对象层级视图(包括所有其组件)线性化来说极为有用。
请注意,遍历将不包括从层级视图中引用的资源。例如,如果层级视图中存在 MeshFilter 组件,将不会在生成的列表包含引用的网格。

using UnityEngine;
using UnityEditor;

public class CollectHierarchyExample : MonoBehaviour { void Start() { // Create two GameObjects GameObject parent = new GameObject(); GameObject child = new GameObject(); Object[] roots = new Object[] { parent };

// Name them parent.name = "Parent"; child.name = "Child";

// Make one a child of the other. child.transform.parent = parent.transform;

// Collect entire hierarchy Object[] result = EditorUtility.CollectDeepHierarchy(roots);

// Dump results. Will log four objects to the console; // two GameObjects ("Parent" and "Child") and two Transform // components (one belonging to "Parent" and one belonging to // "Child") foreach (Object obj in result) Debug.Log(obj); } }