Beispiel #1
0
        /// <summary>
        /// 绘制对话组GUI
        /// </summary>
        private void DialogueGroupGUI()
        {
            GUILayout.Space(10);
            Rect rect = EditorGUILayout.BeginVertical(GUILayout.ExpandWidth(true));

            rect.width  += 12;
            rect.height += 10;
            rect.x      -= 9;
            rect.y      -= 4;
            GUI.Box(rect, "");

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Dialogue", EditorStyles.label);
            EditorGUI.BeginChangeCheck();
            int _count = EditorGUILayout.DelayedIntField(m_target.dialogues.Count, GUILayout.Width(42));

            if (EditorGUI.EndChangeCheck())
            {
                PBEditorUtils.ChangeListLength(m_target.dialogues, _count, m_target);
            }
            if (GUILayout.Button("Fold", EditorStyles.miniButton, GUILayout.Width(32), GUILayout.Height(15)))
            {
                m_dialogueItemFoldOuts.Clear();
            }
            EditorGUILayout.EndHorizontal();
            OnDialogueGroupBarGUI();
            EditorGUILayout.EndVertical();
            GUILayout.Space(5);
            //绘制对话子项
            for (int i = 0; i < m_target.dialogues.Count; i++)
            {
                DrawDialogueItem(m_target.dialogues[i], i);
            }
        }
Beispiel #2
0
        private void DrawCommandGroup(ScenarioDialogue dialogue, int index)
        {
            GUILayout.Space(5);
            Rect rect = EditorGUILayout.BeginVertical(GUILayout.ExpandWidth(true));

            rect.width  += 9;
            rect.height += 8;
            rect.x      -= 6;
            rect.y      -= 4;
            GUI.Box(rect, "");

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Commands", EditorStyles.boldLabel);
            EditorGUI.BeginChangeCheck();
            int _count = EditorGUILayout.DelayedIntField(dialogue.commands.Count, GUILayout.Width(42));

            if (EditorGUI.EndChangeCheck())
            {
                PBEditorUtils.ChangeListLength(dialogue.commands, _count, m_target);
            }
            EditorGUILayout.EndHorizontal();

            for (int i = 0; i < dialogue.commands.Count; i++)
            {
                Rect contextRect = DrawCommandItem(dialogue.commands[i], i);
                PBEditorUtils.ShowContextMenu(contextRect, () =>
                {
                    GenericMenu menu = new GenericMenu();
                    menu.AddDisabledItem(new GUIContent("Command"));
                    menu.AddSeparator("");
                    menu.AddItem(new GUIContent("Add"), false, (object idx) => {
                        Undo.RecordObject(m_target, "Add Command");
                        dialogue.commands.Insert((int)idx + 1, new ScenarioDialogue.Command());
                    }, i);
                    menu.AddItem(new GUIContent("Delete"), false, (object idx) => {
                        Undo.RecordObject(m_target, "Delete Command");
                        dialogue.commands.RemoveAt((int)idx);
                    }, i);
                    menu.ShowAsContext();
                });
            }
            EditorGUILayout.EndVertical();
        }