private void InspectorWindow(int id) { try { GUILayout.BeginVertical(); { GUILayout.BeginHorizontal(); { GUILayout.BeginHorizontal(GUI.skin.box); { GUILayout.Label("Find:"); foreach (var obj in new[] { new KeyValuePair <object, string>( EditorUtilities.GetInstanceClassScanner().OrderBy(x => x.Name()), "Instances"), new KeyValuePair <object, string>(EditorUtilities.GetComponentScanner().OrderBy(x => x.Name()), "Components"), new KeyValuePair <object, string>( EditorUtilities.GetMonoBehaviourScanner().OrderBy(x => x.Name()), "MonoBehaviours"), new KeyValuePair <object, string>(EditorUtilities.GetTransformScanner().OrderBy(x => x.Name()), "Transforms") // new KeyValuePair<object, string>(GetTypeScanner(_inspectorStack.Peek().GetType()).OrderBy(x=>x.Name()), _inspectorStack.Peek().GetType().ToString()+"s"), }) { if (obj.Key == null) { continue; } if (GUILayout.Button(obj.Value)) { InspectorClear(); InspectorPush(new InstanceStackEntry(obj.Key, obj.Value)); } } } GUILayout.EndHorizontal(); GUILayout.Space(13); GUILayout.BeginHorizontal(GUI.skin.box); { if (GUILayout.Button("Help")) { InspectorPush(InspectorHelpObj.Create()); } if (GUILayout.Button("Close")) { InspectorClear(); } } GUILayout.EndHorizontal(); } GUILayout.EndHorizontal(); _inspectorStackScrollPos = GUILayout.BeginScrollView(_inspectorStackScrollPos, true, false, GUI.skin.horizontalScrollbar, GUIStyle.none, GUIStyle.none, GUILayout.Height(46)); { GUILayout.BeginHorizontal(GUI.skin.box, GUILayout.ExpandWidth(false), GUILayout.ExpandHeight(false)); foreach (var item in _inspectorStack.Reverse().ToArray()) { if (GUILayout.Button(item.Name, GUILayout.ExpandWidth(false))) { while (_inspectorStack.Peek() != item) { InspectorPop(); } return; } } GUILayout.EndHorizontal(); } GUILayout.EndScrollView(); GUILayout.BeginVertical(GUI.skin.box); { GUILayout.BeginHorizontal(); { GUILayout.Space(1); GUILayout.Label("Value/return type", GUI.skin.box, _inspectorTypeWidth); GUILayout.Space(2); GUILayout.Label("Member name", GUI.skin.box, _inspectorNameWidth); GUILayout.Space(1); GUILayout.Label("Value", GUI.skin.box, GUILayout.ExpandWidth(true)); } GUILayout.EndHorizontal(); DrawContentScrollView(); } GUILayout.EndVertical(); } GUILayout.EndVertical(); } catch (Exception ex) { Logger.Log(LogLevel.Error, "[Inspector] GUI crash: " + ex); InspectorClear(); } GUI.DragWindow(); }
public static InspectorStackEntryBase Create() { var obj = new InspectorHelpObj(); return(new InstanceStackEntry(obj, "Inspector Help")); }