1//用于获取所有Hierarchy中的物体,包括被禁用的物体 2 private List<GameObject> GetAllSceneObjectsWithInactive() 3 { 4 var allTransforms = Resources.FindObjectsOfTypeAll(typeof(Transform)); 5 var previousSelection = Selection.objects; 6 Selection.objects = allTransforms.Cast<Transform>() 7 .Where(x => x != null) 8 .Select(x => x.gameObject) 9 //如果你只想获取所有在Hierarchy中被禁用的物体,反注释下面代码 10 //.Where(x => x != null && !x.activeInHierarchy) 11 .Cast<UnityEngine.Object>().ToArray(); 12 13 var selectedTransforms = Selection.GetTransforms(SelectionMode.Editable | SelectionMode.ExcludePrefab); 14 Selection.objects = previousSelection; 15 16 return selectedTransforms.Select(tr => tr.gameObject).ToList(); 17 }
Unity 遍历场景所有物体(包括隐藏及被禁用的物体)
Wesley13
2021-10-11
1484 0 0
点赞
收藏
评论区
加载中...