addNewChild() публичный Метод

public addNewChild ( ) : SecuenceNode,
Результат SecuenceNode,
Пример #1
0
    public void draw()
    {
        dialog = myNode.Content as Dialog;

        GUIStyle style = new GUIStyle();

        style.padding = new RectOffset(5, 5, 5, 5);
        dialog.id     = UnityEditor.EditorGUILayout.TextField("Name", dialog.id);

        ArrayList lf = new ArrayList(dialog.getFragments());

        fragmentsReorderableList.list = lf;

        ArrayList lo = new ArrayList(dialog.getOptions());

        optionsReorderableList.list = lo;

        EditorGUILayout.HelpBox("You have to add at least one", MessageType.None);
        if (fragmentsReorderableList.list != null)
        {
            bool isScrolling = false;
            if (fragmentsReorderableList.list.Count > 3)
            {
                scroll      = EditorGUILayout.BeginScrollView(scroll, GUILayout.ExpandWidth(true), GUILayout.Height(250));
                isScrolling = true;
            }

            fragmentsReorderableList.elementHeight = fragmentsReorderableList.list.Count == 0 ? 20 : 70;
            fragmentsReorderableList.DoLayoutList();

            if (isScrolling)
            {
                EditorGUILayout.EndScrollView();
            }
        }

        EditorGUILayout.HelpBox("Options are the lines between you have to choose at the end of the dialog. Leave empty to do nothing, put one to execute this as the dialog ends, or put more than one to let the player choose between them.", MessageType.None);
        if (optionsReorderableList.list != null)
        {
            int i = optionsReorderableList.count;
        }

        optionsReorderableList.DoLayoutList();

        if (Event.current.type != EventType.layout)
        {
            if (myNode.Childs.Length < 1)
            {
                myNode.addNewChild();
                //this.Repaint ();
            }
        }
    }
Пример #2
0
    public void draw()
    {
        Checkable c = (Checkable)myNode.Content;

        string[] editors        = ForkEditorFactory.Intance.CurrentForkEditors;
        int      editorSelected = EditorGUILayout.Popup(
            ForkEditorFactory.Intance.ForkEditorIndex(c),
            ForkEditorFactory.Intance.CurrentForkEditors
            );

        ForkEditor editor = ForkEditorFactory.Intance.createForkEditorFor(editors[editorSelected]);

        editor.useFork(c);

        editor.draw();

        myNode.Content = editor.Result;

        if (Event.current.type != EventType.Layout)
        {
            int l = myNode.Childs.Length;
            if (l != 2)
            {
                while (l < 2)
                {
                    myNode.addNewChild();
                    l++;
                }
                while (l > 2)
                {
                    myNode.removeChild(l);
                    l--;
                }
                myNode.Childs[0].Name = "Case fork True";
                myNode.Childs[1].Name = "Case fork False";
                //this.Repaint ();
            }
        }
    }
Пример #3
0
    public void draw()
    {
        Dialog dialog = myNode.Content as Dialog;

        GUIStyle style = new GUIStyle();

        style.padding = new RectOffset(5, 5, 5, 5);
        dialog.id     = UnityEditor.EditorGUILayout.TextField("Name", dialog.id);
        Dialog.Fragment[]     fragments = dialog.getFragments();
        Dialog.DialogOption[] options   = dialog.getOptions();

        EditorGUILayout.HelpBox("You have to add at least one", MessageType.None);
        bool infoShown = false;

        if (fragments != null)
        {
            bool isScrolling = false;
            if (fragments.Length > 3)
            {
                scroll      = EditorGUILayout.BeginScrollView(scroll, GUILayout.ExpandWidth(true), GUILayout.Height(250));
                isScrolling = true;
            }
            foreach (Dialog.Fragment frg in fragments)
            {
                EditorGUILayout.BeginHorizontal();
                frg.IsEntityFragment = EditorGUILayout.Toggle("Is entity: ", frg.IsEntityFragment);
                bool showInfo = false;
                if (frg.IsEntityFragment)
                {
                    frg.Entity = (Entity)EditorGUILayout.ObjectField(frg.Entity, typeof(Entity), true);
                    showInfo   = true;
                }
                EditorGUILayout.EndHorizontal();
                if (showInfo)
                {
                    if (!infoShown)
                    {
                        EditorGUILayout.HelpBox("Empty face or name will show entity's default face or name.", MessageType.Info);
                    }
                    infoShown = true;
                }
                EditorGUILayout.BeginHorizontal();
                frg.Face = EditorGUILayout.ObjectField(frg.Face, typeof(Texture2D), true, GUILayout.Width(50), GUILayout.Height(50)) as Texture2D;
                EditorGUILayout.BeginVertical();
                frg.Name = EditorGUILayout.TextField(frg.Name);
                frg.Msg  = EditorGUILayout.TextArea(frg.Msg, GUILayout.Height(40));
                EditorGUILayout.EndVertical();
                EditorGUILayout.BeginVertical();

                /*EditorGUILayout.BeginHorizontal();
                 *      EditorGUILayout.LabelField("Reset: ", GUILayout.Width(40));
                 *      frg.reset = EditorGUILayout.Toggle(frg.reset);
                 *      EditorGUILayout.EndHorizontal();*/


                GUIContent btt = new GUIContent("Remove");
                Rect       btr = GUILayoutUtility.GetRect(btt, style);
                if (GUI.Button(btr, btt))
                {
                    dialog.removeFragment(frg);
                }
                ;
                EditorGUILayout.EndVertical();
                EditorGUILayout.EndHorizontal();
            }
            if (isScrolling)
            {
                EditorGUILayout.EndScrollView();
            }
        }

        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.EndHorizontal();

        GUIContent bttext = new GUIContent("Add Fragment");
        Rect       btrect = GUILayoutUtility.GetRect(bttext, style);

        if (GUI.Button(btrect, bttext))
        {
            dialog.addFragment();
        }
        ;

        EditorGUILayout.HelpBox("Options are the lines between you have to choose at the end of the dialog. Leave empty to do nothing, put one to execute this as the dialog ends, or put more than one to let the player choose between them.", MessageType.None);
        if (options != null)
        {
            int i = 0;
            foreach (Dialog.DialogOption opt in options)
            {
                EditorGUILayout.BeginHorizontal();
                //EditorGUILayout.LabelField("Tag: ", GUILayout.Width(27));
                //opt.tag = EditorGUILayout.TextField(opt.tag);
                EditorGUILayout.LabelField("Text: ", GUILayout.Width(35));
                opt.text = EditorGUILayout.TextField(opt.text);
                GUIContent btt = new GUIContent("Remove");
                Rect       btr = GUILayoutUtility.GetRect(btt, style);
                if (GUI.Button(btr, btt))
                {
                    dialog.removeOption(opt);
                    if (myNode.Childs.Length > 1)
                    {
                        myNode.removeChild(i);
                        i--;
                    }
                }
                else
                {
                    if (myNode.Childs[i] != null)
                    {
                        myNode.Childs[i].Name = "Option " + (i + 1);
                    }
                }
                EditorGUILayout.EndHorizontal();
                i++;
            }
        }

        bttext = new GUIContent("Add Option");
        btrect = GUILayoutUtility.GetRect(bttext, style);
        if (GUI.Button(btrect, bttext))
        {
            dialog.addOption();
            if (myNode.Childs.Length < dialog.getOptions().Length)
            {
                myNode.addNewChild();
            }
        }
        ;

        if (Event.current.type != EventType.layout)
        {
            if (myNode.Childs.Length < 1)
            {
                myNode.addNewChild();
                //this.Repaint ();
            }
        }
    }
Пример #4
0
    public void draw()
    {
        GameEvent ge = (GameEvent)node.Content;

        string[] editors        = EventEditorFactory.Intance.CurrentEventEditors;
        int      editorSelected = 0;

        if (ge.Name == null)
        {
            ge.Name = "";
        }
        for (int i = 1; i < editors.Length; i++)
        {
            if (editors[i].ToLower() == ge.Name.ToLower())
            {
                editorSelected = i;
            }
        }
        int was = editorSelected;

        editorSelected = EditorGUILayout.Popup(editorSelected, EventEditorFactory.Intance.CurrentEventEditors);
        if (was != editorSelected && editorSelected == 0)
        {
            ge.Name = "";
        }
        EventEditor editor = EventEditorFactory.Intance.createEventEditorFor(editors[editorSelected]);

        editor.useEvent(ge);

        editor.draw();

        ge.setParameter("synchronous", EditorGUILayout.Toggle("Synchronous",
                                                              (ge.getParameter("synchronous") == null) ? false : (bool)ge.getParameter("synchronous")));
        if ((bool)ge.getParameter("synchronous"))
        {
            EditorGUILayout.HelpBox("Notice that if there is no EventFinished event, the game will stuck.", MessageType.Warning);
        }

        node.Content = editor.Result;

        if (Event.current.type != EventType.layout)
        {
            int l = node.Childs.Length;
            if (l != 1)
            {
                if (l == 0)
                {
                    node.addNewChild();
                }
                else
                {
                    while (l > 1)
                    {
                        node.removeChild(l - 1);
                        l--;
                    }
                }
                //this.Repaint ();
            }
        }
    }