public static void Open(EditorTutorialScripts owner, TutorialScript script, TutorialStep step, Vector2 position, float buttonWidth) { var rect = new Rect(position, new Vector2(200, 200)); if (_actionWindow == null) { _actionWindow = EditorWindow.GetWindowWithRect <EditorAddTutorialAction>(rect, true, "添加行为"); } else { _actionWindow.position = rect; } _actionWindow._owner = owner; _actionWindow._step = step; _actionWindow._script = script; _actionWindow._buttonWidth = buttonWidth; _actionWindow.Show(); }
void DrawActions(ref List <TutorialAction> actions, ref bool show, TutorialScript ts, TutorialStep step, Vector2 pos, bool isPublic) { // 行为列表 EditorGUILayout.BeginVertical(); EditorGUILayout.BeginHorizontal(); show = EditorGUILayout.Foldout(show, (isPublic ? "公共" : "") + "行为列表"); if (GUILayout.Button("添加" + (isPublic ? "公共" : "") + "行为", GUILayout.Width(_buttonWidth))) { EditorAddTutorialAction.Open(_currentWindow, ts, step, pos, _buttonWidth); } EditorGUILayout.EndHorizontal(); if (show) { List <TutorialAction> removeActions = new List <TutorialAction>(); for (int j = 0; j < actions.Count; ++j) { EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("行为" + (j + 1) + ": " + actions[j].GetType().ToString()); GUILayout.FlexibleSpace(); if (GUILayout.Button("删除行为", GUILayout.Width(_buttonWidth))) { removeActions.Add(actions[j]); break; } EditorGUILayout.EndHorizontal(); JsonUtils.DisplayInEditor(actions[j], _buttonWidth); } for (int j = 0; j < removeActions.Count; ++j) { actions.Remove(removeActions[j]); } } EditorGUILayout.Space(); EditorGUILayout.EndVertical(); }