Esempio n. 1
0
        static public void ShowEditor()
        {
            if (Selection.activeGameObject != null)
            {
                var poolConfig = Selection.activeGameObject.GetComponent <EntityPoolConfig> ();

                ZEditorWindow editor = EditorWindow.GetWindow <ZEditorWindow>("Pool Config");
                editor.curPoolConfig = poolConfig;


                if (editor.curPoolConfig != null)
                {
                    editor.WndName = editor.curPoolConfig.gameObject.name;
                    editor.loadLayout();
                }

                editor.OnSelWindow += (wndID) => {
                    //Debug.Log("OnSelWindow" + wndID);

                    if (wndID >= 0)
                    {
                        editor.curPoolConfig.SelAEntity(wndID);

                        editor.strTempEditEntityName = editor.curPoolConfig.CurEntity.Name;

                        EditorApplication.RepaintHierarchyWindow();

                        if (EntityPoolInspectorEditor.curEditor != null)
                        {
                            EntityPoolInspectorEditor.curEditor.Repaint();
                        }
                    }
                    else
                    {
                        editor.strTempEditEntityName = "No Selected";
                    }
                };

                Selection.selectionChanged += () => editor.RefreshAndRepaint();

                editor.OnLinkNode += (parentID, subID) => {
                    //Debug.Log("OnLinkNode " + parentID + " sub " + subID);
                    editor.curPoolConfig.PoolNodeRoot.SetRelation(parentID, subID);
                    EntityPoolEditorBuildUtils.SaveEntityPoolConfigData(editor.curPoolConfig.PoolNodeRoot);
                    editor.Refresh();
                };
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Draws the control bar.
        /// </summary>
        void DrawControlBar()
        {
            var componentColor = Color.HSVToRGB(0.5f, 0.7f, 1f);

            componentColor.a = 0.15f;
            var style = new GUIStyle(GUI.skin.label);

            style.normal.background = InspectorDrawer.createTexture(2, 2, componentColor);
//
            EditorGUILayout.BeginHorizontal(style);


            //EditorGUILayout.LabelField ("");

            if (GUILayout.Button("Add Entity", GUILayout.MaxWidth(100)))
            {
                var node = curPoolConfig.PoolNodeRoot.FindNode(CurSelWndID);

                //curPoolConfig.CreateEntity ();
                curPoolConfig.CreateEntityAt(node);
                EntityPoolEditorBuildUtils.SaveEntity(curPoolConfig.CurEntity);

                EntityPoolEditorBuildUtils.SaveEntityPoolConfigData(curPoolConfig.PoolNodeRoot);
                Refresh();
            }

            if (GUILayout.Button("Delete Entity", GUILayout.MaxWidth(100)))
            {
                ZEntity en = curPoolConfig.DeleteCurEntity();
                EntityPoolEditorBuildUtils.DelEntityFile(en);

                EntityPoolEditorBuildUtils.SaveEntityPoolConfigData(curPoolConfig.PoolNodeRoot);

                Refresh();
            }

            if (GUILayout.Button("Add System", GUILayout.MaxWidth(100)))
            {
                curPoolConfig.CreateSystem();
                EntityPoolEditorBuildUtils.SaveEntity(curPoolConfig.CurEntity);

                EntityPoolEditorBuildUtils.SaveEntityPoolConfigData(curPoolConfig.PoolNodeRoot);
                Refresh();
            }

            if (GUILayout.Button("Reset", GUILayout.MaxWidth(100)))
            {
                EntityPoolEditorBuildUtils.DelAllEntity(curPoolConfig.PoolNodeRoot);

                curPoolConfig.DeleteAllEntity();

                EntityPoolEditorBuildUtils.SaveEntityPoolConfigData(curPoolConfig.PoolNodeRoot);

                Refresh();
            }

            if (GUILayout.Button("Isolate", GUILayout.MaxWidth(100)))
            {
                if (curPoolConfig.CurEntity != null)
                {
                    curPoolConfig.PoolNodeRoot.IsolateRelation(curPoolConfig.CurEntity.ID);
                    EntityPoolEditorBuildUtils.SaveEntityPoolConfigData(curPoolConfig.PoolNodeRoot);
                    Refresh();
                }
            }

            strTempEditEntityName = GUILayout.TextArea(strTempEditEntityName, GUILayout.MaxWidth(200));


            if (GUILayout.Button("Rename", GUILayout.MaxWidth(100)))
            {
                if (curPoolConfig.CurEntity != null && CurSelWndID >= 0)
                {
                    //curPoolConfig.CurEntity.Name = strTempEditEntityName;
                    curPoolConfig.PoolNodeRoot.Rename(curPoolConfig.CurEntity.ID, strTempEditEntityName);
                    root.RenameTitle(curPoolConfig.CurEntity.ID, strTempEditEntityName);
                    SaveLayout();
                    EntityPoolEditorBuildUtils.ChangeEntityName(curPoolConfig.CurEntity, strTempEditEntityName);
                    EntityPoolEditorBuildUtils.SaveEntityPoolConfigData(curPoolConfig.PoolNodeRoot);
                    Refresh();
                }
            }

            //curEntity.Name = EditorGUILayout.TextField (curEntity.Name);
            EditorGUILayout.EndHorizontal();
        }