Initial commit

This commit is contained in:
msk
2022-01-22 20:13:49 -08:00
parent f9d23e5bcf
commit 687473573d
878 changed files with 70957 additions and 0 deletions
@@ -0,0 +1,110 @@
using UnityEngine;
using UnityEditor;
using UnityEditor.SceneManagement;
using System.Collections.Generic;
public class HiddenGameObjectTools : EditorWindow
{
#region Menu Command
[MenuItem("Tools/Hidden GameObject Tools")]
public static void ShowWindow()
{
var window = GetWindow<HiddenGameObjectTools>();
window.titleContent = new GUIContent("Hidden GOs");
window.GatherHiddenObjects();
}
#endregion
#region GUI
private static readonly GUILayoutOption ButtonWidth = GUILayout.Width(80);
private static readonly GUILayoutOption BigButtonHeight = GUILayout.Height(35);
private void OnGUI()
{
GUILayout.Space(10f);
GUILayout.BeginHorizontal();
{
if (GUILayout.Button("Refresh", BigButtonHeight))
{
GatherHiddenObjects();
}
if (GUILayout.Button("Test", BigButtonHeight, ButtonWidth))
{
var go = new GameObject("HiddenTestObject");
go.hideFlags = HideFlags.HideInHierarchy;
GatherHiddenObjects();
}
}
GUILayout.EndHorizontal();
GUILayout.Space(10f);
EditorGUILayout.LabelField("Hidden Objects (" + HiddenObjects.Count + ")", EditorStyles.boldLabel);
for (int i = 0; i < HiddenObjects.Count; i++)
{
var hiddenObject = HiddenObjects[i];
GUILayout.BeginHorizontal();
{
var gone = hiddenObject == null;
GUILayout.Label(gone ? "null" : hiddenObject.name);
GUILayout.FlexibleSpace();
if (gone)
{
GUILayout.Box("Select", ButtonWidth);
GUILayout.Box("Reveal", ButtonWidth);
GUILayout.Box("Delete", ButtonWidth);
}
else
{
if (GUILayout.Button("Select", ButtonWidth))
{
Selection.activeGameObject = hiddenObject;
}
if (GUILayout.Button(IsHidden(hiddenObject) ? "Reveal" : "Hide", ButtonWidth))
{
hiddenObject.hideFlags ^= HideFlags.HideInHierarchy;
EditorSceneManager.MarkSceneDirty(hiddenObject.scene);
}
if (GUILayout.Button("Delete", ButtonWidth))
{
var scene = hiddenObject.scene;
DestroyImmediate(hiddenObject);
EditorSceneManager.MarkSceneDirty(scene);
}
}
}
GUILayout.EndHorizontal();
}
}
#endregion
#region Hidden Objects
private List<GameObject> HiddenObjects = new List<GameObject>();
private void GatherHiddenObjects()
{
HiddenObjects.Clear();
var allObjects = FindObjectsOfType<GameObject>();
foreach (var go in allObjects)
{
if ((go.hideFlags & HideFlags.HideInHierarchy) != 0)
{
HiddenObjects.Add(go);
}
}
Repaint();
}
private static bool IsHidden(GameObject go)
{
return (go.hideFlags & HideFlags.HideInHierarchy) != 0;
}
#endregion
}