using System; using System.Collections.Generic; using System.Text; using System.IO; using UnityEngine; namespace Dissonance.Inspector { public class ObjectInspector { public static void Log() where T : UnityEngine.Object { Instance[] instances = Inspect(); string[] filelines = new string[instances.Length]; for (int i = 0; i < instances.Length; i++) { filelines[i] = instances[i].ToString() + ","; } Debug.Log("ObjectInspector Log dump\n["+string.Join(",\n", filelines)+"]"); } public static void LogNames() where T : UnityEngine.Object { Debug.Log(string.Join("\n", InspectNames())); } public static void LogAll() { Log(); } public static void LogNamesAll() { LogNames(); } public static void Dump(string filename) where T : UnityEngine.Object { Instance[] instances = Inspect(); string[] filelines = new string[instances.Length]; for (int i = 0; i < instances.Length; i++) { filelines[i] = instances[i].ToString()+","; } File.WriteAllLines(filename, filelines); } public static void DumpNames(string filename) where T : UnityEngine.Object { File.WriteAllLines(filename, InspectNames()); } public static void DumpAll(string filename) { Dump(filename); } public static void DumpNamesAll(string filename) { DumpNames(filename); } public static Instance[] Inspect() where T : UnityEngine.Object { T[] objects = UnityEngine.Object.FindObjectsOfType(); Instance[] instances = new Instance[objects.Length]; for (int i = 0; i < objects.Length; i++) { instances[i] = new Instance(objects[i]); } return instances; } public static string[] InspectNames() where T : UnityEngine.Object { T[] objects = UnityEngine.Object.FindObjectsOfType(); string[] names = new string[objects.Length]; for(int i = 0; i < objects.Length; i++) { names[i] = objects[i].name; } return names; } } }