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(); }; } }
/// <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(); }