/// <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(); }
/// <summary> /// Draws the entity. /// </summary> void DrawEntity() { EditorGUI.BeginChangeCheck(); var componentColor = Color.HSVToRGB(0.5f, 0.7f, 1f); componentColor.a = 0.15f; entityStyle = new GUIStyle(GUI.skin.box); entityStyle.normal.background = InspectorDrawer.createTexture(2, 2, componentColor); List <IZComponent> coms = curEntity.GetComponents <IZComponent> (); //draw current selected entity EditorGUILayout.BeginVertical(entityStyle); //show the entity name EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Entity Name: " + curEntity.Name); //curEntity.Name = EditorGUILayout.TextField (curEntity.Name); EditorGUILayout.EndHorizontal(); //show component info EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Component x " + coms.Count, GUILayout.MaxWidth(100)); GUILayout.FlexibleSpace(); //show the component menu IZComponent c = curEntity.EType == EntityType.Entity ? ComponentsPool <IZComponent> .DrawAddComponentMenu() : ComponentsPool <IZComponent> .DrawAddSystemMenu(); if (c != null) { var com = ComponentsPool <IZComponent> .CreateComponent(c.GetType()); curEntity.AddComponent(com); } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); //Draw Component componentColor = Color.HSVToRGB(0.9f, 0.1f, 0.9f); componentColor.a = 0.15f; entityStyle = new GUIStyle(GUI.skin.box); entityStyle.normal.background = InspectorDrawer.createTexture(2, 2, componentColor); ///EditorGUILayout.Space(); foreach (IZComponent com in coms) { DrawComponent(com); } if (EditorGUI.EndChangeCheck()) { // Code to execute if GUI.changed // was set to true inside the block of code above. if (poolConfig != null && poolConfig.CurPool != null) { //Debug.Log("EndChangeCheck"); EntityPoolEditorBuildUtils.SaveEntity(curEntity); serializedObject.SetIsDifferentCacheDirty(); EditorApplication.DirtyHierarchyWindowSorting(); EditorApplication.RepaintProjectWindow(); //AssetDatabase.Refresh (); //EditorApplication. } } }