Exemple #1
0
        private void    OnCreateComponent(Type type)
        {
            if (this.CheckMaxHubComponents(this.components.Count) == false)
            {
                return;
            }

            HubComponent component = Activator.CreateInstance(type) as HubComponent;

            component.Init(this);

            HubComponentWindow[] editors = Resources.FindObjectsOfTypeAll <HubComponentWindow>();

            for (int i = 0; i < editors.Length; i++)
            {
                editors[i].Close();
            }

            if (component.hasEditorGUI == true)
            {
                HubComponentWindow editor = EditorWindow.CreateInstance <HubComponentWindow>();

                editor.titleContent.text = component.name;
                editor.position          = new Rect(this.position.x, this.position.y + this.height, Mathf.Max(HubComponentWindow.MinWidth, editor.position.width), editor.position.height);
                editor.Init(this, component);
                editor.ShowPopup();
            }

            this.components.Add(component);
            this.SaveComponents();
            this.Repaint();

            NGHubEditorWindow[] windows = Resources.FindObjectsOfTypeAll <NGHubEditorWindow>();

            for (int i = 0; i < windows.Length; i++)
            {
                windows[i].Repaint();
            }
        }