protected void DrawButtons() { BeginHorizontal(); if (GUILayout.Button("Show In Editor")) { if (target is UnitTower) { UnitTowerEditorWindow.Init(); UnitTowerEditorWindow.window.Select(((Unit)target).unitName); } if (target is UnitCreep) { UnitCreepEditorWindow.Init(); UnitCreepEditorWindow.window.Select(((Unit)target).unitName); } } if (GUILayout.Button("Apply")) { //PrefabUtility.RecordPrefabInstancePropertyModifications(target); EditorUtility.SetDirty(target); EditorUtility.SetDirty(PrefabUtility.GetPrefabObject(target)); AssetDatabase.SaveAssets(); } EndHorizontal(); }
public override void OnInspectorGUI() { EditorGUILayout.Space(); if (GUILayout.Button("Show In Editor")) { UnitTowerEditorWindow.Init(); UnitTowerEditorWindow.window.Select(((UnitTower)target).unitName); } base.OnInspectorGUI(); }
public static void Init(string title = "Tower Editor") { // Get existing open window or if none, make a new one: window = (UnitTowerEditorWindow)EditorWindow.GetWindow(typeof(UnitTowerEditorWindow), false, title); //~ window.minSize=new Vector2(375, 449); //~ window.maxSize=new Vector2(375, 800); EditorDBManager.Init(); InitLabel(); UpdateObjectHierarchyList(); skin = Resources.Load <GUISkin>("GUISkin"); }
public override void OnInspectorGUI() { EditorGUILayout.Space(); if (GUILayout.Button("Show In Editor")) { UnitTowerEditorWindow.Init(); UnitTowerEditorWindow.window.Select(((UnitTower)target).unitName); } UnitWall unit = (UnitWall)target; unit.deadEffectObj = (GameObject)EditorGUILayout.ObjectField("Dead Effect:", unit.deadEffectObj, typeof(GameObject)); unit.delay = EditorGUILayout.FloatField("Delay:", unit.delay); base.OnInspectorGUI(); }
public static void OpenDefenderEditor() { UnitTowerEditorWindow.filter = Filter.Defender; UnitTowerEditorWindow.Init("Defender Editor"); }
public static void OpenHeroEditor() { UnitTowerEditorWindow.filter = Filter.Hero; UnitTowerEditorWindow.Init("Hero Editor"); }
public static void OpenTowerEditor() { UnitTowerEditorWindow.filter = Filter.Tower; UnitTowerEditorWindow.Init(); }
public override void OnInspectorGUI() { GUI.changed = false; EditorGUILayout.Space(); cont = new GUIContent("Grid Size:", "The grid size of the grid on the platform"); instance.gridSize = EditorGUILayout.FloatField(cont, instance.gridSize); cont = new GUIContent("AutoSearchForPlatform:", "Check to let the BuildManager automatically serach of all the build platform in game\nThis will override the BuildPlatform list"); instance.autoSearchForPlatform = EditorGUILayout.Toggle(cont, instance.autoSearchForPlatform); cont = new GUIContent("AutoAdjustTextureToGrid:", "Check to let the BuildManager reformat the texture tiling of the platform to fix the gridsize"); instance.AutoAdjustTextureToGrid = EditorGUILayout.Toggle(cont, instance.AutoAdjustTextureToGrid); EditorGUILayout.Space(); if (GUILayout.Button("Enable All Towers On All Platforms") && !Application.isPlaying) { EnableAllToweronAllPlatform(); } cont = new GUIContent("Build Platforms", "Build Platform in this level\nOnly applicable when AutoSearchForPlatform is unchecked"); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("", GUILayout.MaxWidth(10)); showPlatforms = EditorGUILayout.Foldout(showPlatforms, cont); EditorGUILayout.EndHorizontal(); if (showPlatforms) { cont = new GUIContent("Build Platforms:", "The grid size of the grid on the platform"); float listSize = instance.buildPlatforms.Count; listSize = EditorGUILayout.FloatField(" Size:", listSize); //if(!EditorGUIUtility.editingTextField && listSize!=instance.buildPlatforms.Count){ if (listSize != instance.buildPlatforms.Count) { while (instance.buildPlatforms.Count < listSize) { instance.buildPlatforms.Add(null); } while (instance.buildPlatforms.Count > listSize) { instance.buildPlatforms.RemoveAt(instance.buildPlatforms.Count - 1); } } for (int i = 0; i < instance.buildPlatforms.Count; i++) { instance.buildPlatforms[i] = (PlatformTD)EditorGUILayout.ObjectField(" Element " + i, instance.buildPlatforms[i], typeof(PlatformTD), true); } } EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("", GUILayout.MaxWidth(10)); showTowerList = EditorGUILayout.Foldout(showTowerList, "Show Tower List"); EditorGUILayout.EndHorizontal(); if (showTowerList) { EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("EnableAll") && !Application.isPlaying) { instance.unavailableTowerIDList = new List <int>(); } if (GUILayout.Button("DisableAll") && !Application.isPlaying) { instance.unavailableTowerIDList = new List <int>(); for (int i = 0; i < towerList.Count; i++) { instance.unavailableTowerIDList.Add(towerList[i].prefabID); } } EditorGUILayout.EndHorizontal(); //scrollPosition = GUILayout.BeginScrollView (scrollPosition); for (int i = 0; i < towerList.Count; i++) { UnitTower tower = towerList[i]; if (tower.disableInBuildManager) { continue; } GUILayout.BeginHorizontal(); GUILayout.Box("", GUILayout.Width(40), GUILayout.Height(40)); Rect rect = GUILayoutUtility.GetLastRect(); EditorUtilities.DrawSprite(rect, tower.iconSprite, false); GUILayout.BeginVertical(); EditorGUILayout.Space(); GUILayout.Label(tower.unitName, GUILayout.ExpandWidth(false)); bool flag = !instance.unavailableTowerIDList.Contains(tower.prefabID) ? true : false; if (Application.isPlaying) { flag = !flag; //switch it around in runtime } flag = EditorGUILayout.Toggle(new GUIContent(" - enabled: ", "check to enable the tower in this level"), flag); if (!Application.isPlaying) { if (flag) { instance.unavailableTowerIDList.Remove(tower.prefabID); } else { if (!instance.unavailableTowerIDList.Contains(tower.prefabID)) { instance.unavailableTowerIDList.Add(tower.prefabID); } } } GUILayout.EndVertical(); GUILayout.EndHorizontal(); } //GUILayout.EndScrollView (); } EditorGUILayout.Space(); int cursorMode = (int)instance.cursorIndicatorMode; cont = new GUIContent("Tile Cursor Mode:", "The way to indicate a tile on a grid when it's currently being hovered on by the cursor"); contList = new GUIContent[cursorIndModeLabel.Length]; for (int i = 0; i < contList.Length; i++) { contList[i] = new GUIContent(cursorIndModeLabel[i], cursorIndModeTooltip[i]); } cursorMode = EditorGUILayout.Popup(cont, cursorMode, contList); instance.cursorIndicatorMode = (BuildManager._CursorIndicatorMode)cursorMode; EditorGUILayout.Space(); if (GUILayout.Button("Open TowerEditor")) { UnitTowerEditorWindow.Init(); } EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("", GUILayout.MaxWidth(10)); showDefaultFlag = EditorGUILayout.Foldout(showDefaultFlag, "Show default editor"); EditorGUILayout.EndHorizontal(); if (showDefaultFlag) { DrawDefaultInspector(); } if (GUI.changed) { EditorUtility.SetDirty(instance); } }