public void OnGUI() { if (requestFocus && Event.current.type == EventType.Layout) { requestFocus = false; EditorWindow.FocusWindowIfItsOpen <UTAutomationPlanPopup>(); } EditorGUILayout.LabelField(caption); EditorGUILayout.Space(); GUI.SetNextControlName("AutomationPlanList"); listData = CUListControl.SelectionList <UTAutomationPlan>(listData, currentItems, itemRenderer, "Plans", GUILayout.ExpandHeight(true)); if (GUI.GetNameOfFocusedControl() == string.Empty) { // move focus to the textfield after the dialog is visible GUI.FocusControl("AutomationPlanList"); } EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); EditorGUI.BeginChangeCheck(); showAllItems = GUILayout.Toggle(showAllItems, "Show hidden plans"); if (EditorGUI.EndChangeCheck()) { currentItems = showAllItems ? allItems : visibleItems; listData.ClearSelection(); if (currentItems.Count > 0) { listData[0] = true; } } GUILayout.FlexibleSpace(); GUI.enabled = !listData.Empty; if (GUILayout.Button("Ok")) { Apply(listData.First); } GUI.enabled = true; if (GUILayout.Button("Cancel")) { CloseDialog(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); if (Event.current.type == EventType.KeyDown && Event.current.keyCode == KeyCode.Escape) { CloseDialog(); } wasGuiPaintedAtLeastOnce = true; }
private void DrawActions() { GUILayout.Label("Settings", UTEditorResources.TitleStyle); EditorGUILayout.Space(); EditorGUI.BeginChangeCheck(); EditorGUILayout.BeginHorizontal(); showHidden = EditorGUILayout.Toggle("Show hidden plans", showHidden); debugMode = EditorGUILayout.Toggle("Debug mode", debugMode); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); clearConsole = EditorGUILayout.Toggle("Clear console", clearConsole); returnToPlanListAfterRun = EditorGUILayout.Toggle("Return to plan list after run", returnToPlanListAfterRun); EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); if (EditorGUI.EndChangeCheck()) { UTPreferences.DebugMode = debugMode; UTPreferences.ShowHiddenPlansInRunner = showHidden; UTPreferences.ClearConsoleBeforeStart = clearConsole; UTPreferences.ReturnToPlanListAfterPlanIsRun = returnToPlanListAfterRun; } var planList = showHidden ? plans : visiblePlans; listData = CUListControl.SelectionList(listData, planList, renderer, "Plans"); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUI.enabled = listData.Selection.Count > 0 && !UTomateRunner.Instance.IsRunning; if (GUILayout.Button("Run Plan")) { currentWindow = 1; RunSelected(); // some actions will reload the project and not exiting the gui here // will yield all kinds of funky exceptions because the gui is trying to draw on a state that // no longer exists. GUIUtility.ExitGUI(); } GUI.enabled = true; EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); }
public override void OnInspectorGUI() // 画 GUI { ProDraw(); if (Target.activeConfiguration) { GUILayout.Label("游戏使用该配置".AddYellow()); } else { EditorGUILayout.BeginHorizontal(); GUILayout.Label("游戏不是使用这个配置"); GUILayout.FlexibleSpace(); if (GUILayout.Button("使用该配置")) { SMSceneConfigurationUtil.EnsureActiveConfiguration(Target, true); SyncBuildSettingsIfRequired(); } EditorGUILayout.EndHorizontal(); } MyCreate.Box(() => { sceneListHeight = CUResizableContainer.BeginVertical(sceneListHeight); sceneListData = CUListControl.SelectionList(sceneListData, scenes, sceneRenderer); CUResizableContainer.EndVertical(); bool isChooseScene = !sceneListData.Empty; GUI.enabled = isChooseScene; // 判断有没有点击场景 int width = Screen.width / 3 - 10; MyGUI.Heng(() => { MyGUI.Button(isChooseScene ? "关卡".AddGreen() : "关卡", width, ChangeToLevel); MyGUI.Button(isChooseScene ? "场景".AddOrange() : "关卡", width, ChangeToScreen); MyGUI.Button("Ignore", width, ChangeToIgnore); }); GUI.enabled = !sceneListData.Empty && IsScreen(scenes[sceneListData.First]);// 判断点击的场景是否标记 Screen MyGUI.Heng(() => { MyGUI.Button("开始场景", width, ChangeToFirstScreen); MyGUI.Button("关卡完成后场景", width, ChangeToFirstScreenAfterLevel); GUI.enabled = sceneListData.Selection.Count == 1; MyGUI.Button("打开", width, () => { OpenScene(sceneListData); }); }); }); MyGUI.AddSpace(4); GUI.enabled = true; MyCreate.Box(() => { levelListHeight = CUResizableContainer.BeginVertical(levelListHeight); levelListData = CUListControl.SelectionList(levelListData, Target.levels, levelRenderer, "关卡"); CUResizableContainer.EndVertical(); GUI.enabled = !levelListData.Empty; MyGUI.Heng(() => { MyGUI.AddSpace(); MyGUI.Button("First", MoveToFirst); MyGUI.Button("↑", MoveUp); MyGUI.Button("↓", MoveDown); MyGUI.Button("Last", MoveToLast); }); GUI.enabled = true; }); }
public override void OnInspectorGUI() // 画 GUI { ProDraw(); if (Target.activeConfiguration) { GUILayout.Label("游戏使用该配置".AddYellow()); } else { EditorGUILayout.BeginHorizontal(); GUILayout.Label("游戏不是使用这个配置"); GUILayout.FlexibleSpace(); if (GUILayout.Button("使用该配置")) { SMSceneConfigurationUtil.EnsureActiveConfiguration(Target, true); SyncBuildSettingsIfRequired(); } EditorGUILayout.EndHorizontal(); } int workWidth = Screen.width / 3 - 34; WorkflowActionEnum targetWork = Target.actionAfterGroup; bool isLevel = targetWork == WorkflowActionEnum.LoadNextLevel; MyGUI.Heng(() => { MyGUI.Text("组结束,加载:"); MyGUI.Button(isLevel?"[下一关卡]".AddGreen(): "下一关卡".AddLightGreen(), workWidth, () => { if (!isLevel) { ChangeToWorkflowAction(WorkflowActionEnum.LoadNextLevel); } }); MyGUI.AddSpace(2); MyGUI.Button(isLevel ? "标记场景".AddLightGreen() : "[标记场景]".AddGreen(), workWidth, () => { if (isLevel) { ChangeToWorkflowAction(WorkflowActionEnum.LoadScreen); } }); MyGUI.AddSpace(); GUI.enabled = sceneListData.Selection.Count == 1; MyGUI.Button("打开", workWidth - 25, () => { OpenScene(sceneListData); }); GUI.enabled = true; }); MyCreate.Box(() => { sceneListHeight = CUResizableContainer.BeginVertical(sceneListHeight); sceneListData = CUListControl.SelectionList(sceneListData, scenes, sceneRenderer); CUResizableContainer.EndVertical(); bool isChooseScene = !sceneListData.Empty; GUI.enabled = isChooseScene; // 判断有没有点击场景 int width = Screen.width / 3 - 10; MyGUI.Heng(() => { MyGUI.Button(isChooseScene ? "关卡".AddGreen() : "关卡", width, ChangeToLevel); MyGUI.Button(isChooseScene ? "场景".AddOrange() : "关卡", width, ChangeToScreen); MyGUI.Button("Ignore", width, ChangeToIgnore); }); GUI.enabled = !sceneListData.Empty && IsScreen(scenes[sceneListData.First]);// 判断点击的场景是否标记 Screen MyCreate.Heng(() => { MyGUI.Button("开始场景", width, ChangeToFirstScreen); MyGUI.Button("关卡完成后场景", width, ChangeToFirstScreenAfterLevel); GUI.enabled = GUI.enabled && Target.actionAfterGroup == WorkflowActionEnum.LoadScreen;// 是否选择了标记场景 MyGUI.Button("完成组后场景", width, ChangeToFirstScreenAfterGroup); }); }); MyGUI.AddSpace(4); GUI.enabled = true; MyCreate.Box(() => { levelListHeight = CUResizableContainer.BeginVertical(levelListHeight); EditorGUILayout.BeginHorizontal(); groupListWidth = CUResizableContainer.BeginHorizontal(groupListWidth); int lastGroup = groupListData.First; groupListData = CUListControl.SelectionList(groupListData, Target.groups, groupRenderer, "组"); if (lastGroup != groupListData.First) { levelListData.ClearSelection(); } CUResizableContainer.EndHorizontal(); GUI.enabled = SelectedGroup != null; levelListData = CUListControl.SelectionList(levelListData, currentGroupLevels, levelRenderer, "关卡"); GUI.enabled = true; EditorGUILayout.EndHorizontal(); CUResizableContainer.EndVertical(); MyGUI.Heng(() => { MyGUI.Button("+", AddGroup); GUI.enabled = !groupListData.Empty && Target.groups.Length > 1; MyGUI.Button("-", RemoveGroup); GUI.enabled = !groupListData.Empty; MyGUI.Button("改名", RenameGroup); GUI.enabled = true; MyGUI.AddSpace(); GUI.enabled = !levelListData.Empty; MyGUI.Button("First", MoveToFirst); MyGUI.Button("↑", MoveUp); MyGUI.Button("↓", MoveDown); MyGUI.Button("Last", MoveToLast); GUI.enabled = true; }); }); }
/// <summary> /// Draws the list of scenes in the inspector GUI. /// </summary> protected void SceneGUI() { sceneListHeight = CUResizableContainer.BeginVertical(sceneListHeight); sceneListData = CUListControl.SelectionList(sceneListData, scenes, sceneRenderer, "Available Scenes"); CUResizableContainer.EndVertical(); GUI.enabled = !sceneListData.Empty; EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Level")) { ChangeToLevel(); } if (GUILayout.Button("Screen")) { ChangeToScreen(); } if (GUILayout.Button("Ignore")) { ChangeToIgnore(); } EditorGUILayout.EndHorizontal(); GUI.enabled = !sceneListData.Empty && IsScreen(scenes[sceneListData.First]); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("First Screen")) { ChangeToFirstScreen(); } if (GUILayout.Button("After last Level")) { ChangeToFirstScreenAfterLevel(); } EditorGUILayout.EndHorizontal(); GUI.enabled = true; EditorGUILayout.Space(); levelListHeight = CUResizableContainer.BeginVertical(levelListHeight); levelListData = CUListControl.SelectionList(levelListData, Target.levels, levelRenderer, "Levels"); CUResizableContainer.EndVertical(); GUI.enabled = !levelListData.Empty; EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("First")) { MoveToFirst(); } if (GUILayout.Button("Up")) { MoveUp(); } if (GUILayout.Button("Down")) { MoveDown(); } if (GUILayout.Button("Last")) { MoveToLast(); } EditorGUILayout.EndHorizontal(); GUI.enabled = true; }
/// <summary> /// Draws the list of scenes in the inspector GUI. /// </summary> protected void SceneGUI() { SMWorkflowActionType action = (SMWorkflowActionType)EditorGUILayout.EnumPopup(new GUIContent("Action after Group", ""), Target.actionAfterGroup); if (action != Target.actionAfterGroup) { ChangeToWorkflowAction(action); } GUILayout.Space(5); sceneListHeight = CUResizableContainer.BeginVertical(sceneListHeight); sceneListData = CUListControl.SelectionList(sceneListData, scenes, sceneRenderer, "Available Scenes"); CUResizableContainer.EndVertical(); GUI.enabled = !sceneListData.Empty && SelectedGroup != null; EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Level")) { ChangeToLevel(); } GUI.enabled = !sceneListData.Empty; if (GUILayout.Button("Screen")) { ChangeToScreen(); } if (GUILayout.Button("Ignore")) { ChangeToIgnore(); } EditorGUILayout.EndHorizontal(); GUI.enabled = !sceneListData.Empty && IsScreen(scenes[sceneListData.First]); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("First Screen")) { ChangeToFirstScreen(); } if (GUILayout.Button("After last Level")) { ChangeToFirstScreenAfterLevel(); } GUI.enabled = GUI.enabled && Target.actionAfterGroup == SMWorkflowActionType.LoadScreen; if (GUILayout.Button("After Group")) { ChangeToFirstScreenAfterGroup(); } EditorGUILayout.EndHorizontal(); GUI.enabled = true; EditorGUILayout.Space(); levelListHeight = CUResizableContainer.BeginVertical(levelListHeight); EditorGUILayout.BeginHorizontal(); groupListWidth = CUResizableContainer.BeginHorizontal(groupListWidth); int lastGroup = groupListData.First; groupListData = CUListControl.SelectionList(groupListData, Target.groups, levelRenderer, "Groups"); if (lastGroup != groupListData.First) { // group changed reset level selection levelListData.ClearSelection(); } CUResizableContainer.EndHorizontal(); GUI.enabled = SelectedGroup != null; levelListData = CUListControl.SelectionList(levelListData, currentGroupLevels, levelRenderer, "Levels"); GUI.enabled = true; EditorGUILayout.EndHorizontal(); CUResizableContainer.EndVertical(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("+")) { AddGroup(); } GUI.enabled = !groupListData.Empty && Target.groups.Length > 1; if (GUILayout.Button("-")) { RemoveGroup(); } GUI.enabled = !groupListData.Empty; if (GUILayout.Button("Rename")) { RenameGroup(); } GUI.enabled = true; GUILayout.FlexibleSpace(); GUI.enabled = !levelListData.Empty; if (GUILayout.Button("First")) { MoveToFirst(); } if (GUILayout.Button("Up")) { MoveUp(); } if (GUILayout.Button("Down")) { MoveDown(); } if (GUILayout.Button("Last")) { MoveToLast(); } GUI.enabled = true; EditorGUILayout.EndHorizontal(); }