private void OnGUI()
        {
            if (go == null)
            {
                GUILayout.Label("Select a GameObject...");
                component        = null;
                editor.Instances = new object[0];
            }
            else
            {
                Component[]  components = go.GetComponents(typeof(Component));
                GUIContent[] contents   = new GUIContent[components.Length + 1];
                contents[0] = new GUIContent("None");
                int index = -1;
                for (int i = 0; i < components.Length; i++)
                {
                    contents[i + 1] = new GUIContent(components[i].GetType().Name);
                    if (components[i] == component)
                    {
                        index = i + 1;
                    }
                }

                EditorGUI.BeginChangeCheck();
                index = EditorGUILayout.Popup(new GUIContent("Select a component: "), index, contents);
                if (EditorGUI.EndChangeCheck())
                {
                    if (index == 0)
                    {
                        component        = null;
                        editor.Instances = new object[0];
                    }
                    else
                    {
                        component        = components[index - 1];
                        editor.Instances = new object[] { component };
                    }
                }
            }

            if (editor.Draw(new Rect(0, 16, position.width, position.height - 16)))
            {
                Repaint();
            }
        }
Example #2
0
        private void OnGUI()
        {
            CreateEditor();

            EditorGUILayout.BeginHorizontal(EditorStyles.toolbar);

            if (GUILayout.Button("Clear", EditorStyles.toolbarButton))
            {
                editor.Fields.Clear();
                references.Clear();
            }

            GUILayout.FlexibleSpace();

            EditorGUILayout.EndHorizontal();

            AdvancedInspectorControl.watched = true;
            editor.Draw(new Rect(0, 18, position.width, position.height - 18));
            AdvancedInspectorControl.watched = false;
        }