转载的。
Unity 遍历场景所有物体(包括隐藏及被禁用的物体)

//用于获取所有Hierarchy中的物体,包括被禁用的物体
private List<GameObject> GetAllSceneObjectsWithInactive()
{
var allTransforms = Resources.FindObjectsOfTypeAll(typeof(Transform));
var previousSelection = Selection.objects;
Selection.objects = allTransforms.Cast<Transform>()
.Where(x => x != null)
.Select(x => x.gameObject)
//如果你只想获取所有在Hierarchy中被禁用的物体,反注释下面代码
//.Where(x => x != null && !x.activeInHierarchy)
.Cast<UnityEngine.Object>().ToArray();
var selectedTransforms = Selection.GetTransforms(SelectionMode.Editable | SelectionMode.ExcludePrefab);
Selection.objects = previousSelection;
return selectedTransforms.Select(tr => tr.gameObject).ToList();
}
本文介绍了一种在Unity中获取场景内所有物体的方法,包括那些被禁用的物体。通过使用Resources.FindObjectsOfTypeAll方法结合特定的选择模式,可以有效地收集到场景中的全部GameObject实例。

1578

被折叠的 条评论
为什么被折叠?



