コード例 #1
0
    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();
    }
コード例 #2
0
    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();
    }