Esempio n. 1
0
    public void AddButton(string label, UnityAction action)
    {
        GRP_ButtonOptions bo = new GRP_ButtonOptions();

        bo.action = new GRP_Event();
        bo.text   = label;
        bo.action.AddRuntimeListener(action);

        buttonList.Add(bo);
    }
Esempio n. 2
0
    public void SetReturn(GRP_ButtonOptions options)
    {
        GRP_PromptButtonOptions bo = new GRP_PromptButtonOptions();

        bo.text  = options.text;
        bo.image = options.image;

        base.SetReturn(bo);
        returnEvent = options.action;
    }
Esempio n. 3
0
    public void AddButton(Sprite image, UnityAction action)
    {
        GRP_ButtonOptions bo = new GRP_ButtonOptions();

        bo.action = new GRP_Event();
        bo.text   = "";
        bo.image  = image;
        bo.action.AddRuntimeListener(action);

        buttonList.Add(bo);
    }
Esempio n. 4
0
    public void AddButton(GRP_ButtonOptions options)
    {
        GameObject buttonObj;

        buttonObj = Instantiate(buttonPF);

        if (buttons == null)
        {
            buttons      = new List <GRP_Button>();
            buttonEvents = new List <GRP_Event>();
        }

        buttonObj.transform.SetParent(buttonsRT.transform);

        GRP_Button button = buttonObj.GetComponent <GRP_Button>();

        if (options.text.Trim() != "")
        {
            buttonObj.GetComponentInChildren <Text>().text = options.text;
            buttonObj.transform.Find("Visual").GetComponent <Image>().color = Color.clear;
        }
        else if (options.image != null)
        {
            buttonObj.GetComponentInChildren <Text>().text = "";
            Image visual = buttonObj.transform.Find("Visual").GetComponent <Image>();
            visual.sprite = options.image;
            visual.color  = Color.white;
        }
        else
        {
            buttonObj.GetComponentInChildren <Text>().text = "";
            buttonObj.transform.Find("Visual").GetComponent <Image>().color = Color.clear;
        }

        buttonEvents.Add(options.action);
        buttons.Add(button);

        int index = buttonEvents.Count - 1;

        button.onClick.AddListener(() => { ButtonWrapper(index); });
    }
Esempio n. 5
0
 public override void ResetButtons()
 {
     returnButton        = new GRP_ButtonOptions();
     returnButton.action = new GRP_Event();
     buttonList          = new List <GRP_ButtonOptions>();
 }
Esempio n. 6
0
    private void ButtonsGroup()
    {
        rm.showButtons = EditorGUILayout.Foldout(rm.showButtons, "Buttons & Actions");

        if (rm.showButtons)
        {
            if (GUILayout.Button("Collapse All"))
            {
                for (int i = 0; i < rm.buttonList.Count; i++)
                {
                    rm.buttonList[i].foldoutState = false;
                }

                rm.returnButton.foldoutState = false;
            }

            if (rm.buttonList == null)
            {
                rm.buttonList = new List <GRP_ButtonOptions>();
            }

            if (rm.returnButton == null)
            {
                rm.returnButton = new GRP_ButtonOptions();
            }

            SerializedProperty buttonList = serializedObject.FindProperty("buttonList");

            EditorGUI.indentLevel++;
            for (int i = 0; rm.buttonList != null && i < rm.buttonList.Count; i++)
            {
                string title = rm.buttonList[i].text == null || rm.buttonList[i].text.Length == 0 ? ("Button #" + (i + 1)) : rm.buttonList[i].text;

                EditorGUILayout.BeginHorizontal();
                rm.buttonList[i].foldoutState = EditorGUILayout.Foldout(rm.buttonList[i].foldoutState, title);
                if (GUILayout.Button(upTex, GUILayout.Width(20), GUILayout.Height(20)))
                {
                    if (i > 0)
                    {
                        GRP_ButtonOptions buttonOptions = rm.buttonList[i];
                        rm.buttonList.RemoveAt(i);
                        rm.buttonList.Insert(i - 1, buttonOptions);
                        return;
                    }
                }

                if (GUILayout.Button(downTex, GUILayout.Width(20), GUILayout.Height(20)))
                {
                    if (i < rm.buttonList.Count - 1)
                    {
                        GRP_ButtonOptions buttonOptions = rm.buttonList[i];
                        rm.buttonList.RemoveAt(i);
                        rm.buttonList.Insert(i + 1, buttonOptions);
                        return;
                    }
                }
                if (GUILayout.Button(deleteTex, GUILayout.Width(20), GUILayout.Height(20)))
                {
                    rm.buttonList.RemoveAt(i);
                    return;
                }
                EditorGUILayout.EndHorizontal();

                if (rm.buttonList[i].foldoutState)
                {
                    StringField(ref rm.buttonList[i].text, "Button Title");

                    if (rm.buttonList[i].text.Trim() == "")
                    {
                        SpriteField(ref rm.buttonList[i].image, "Button Visual");
                    }

                    SerializedProperty buttonListElement = buttonList.GetArrayElementAtIndex(i);
                    if (buttonListElement == null)
                    {
                        return;
                    }

                    EditorGUILayout.PropertyField(buttonListElement.FindPropertyRelative("action"), true);

                    Line(new Color(0, 0, 0, 0.25f), 1, 5);
                    Rect rect = EditorGUILayout.BeginHorizontal();

                    EditorGUILayout.EndHorizontal();
                }

                if (i < rm.buttonList.Count - 1)
                {
                    Line(new Color(0, 0, 0, 0.5f), 1, 5);
                }
            }

            Line(new Color(0, 0, 0, 0.5f));

            bool singleButton = rm.buttonList.Count == 0;

            EditorGUI.BeginDisabledGroup(singleButton);
            BoolField(ref rm.showReturn, "Show Return Button");
            EditorGUI.EndDisabledGroup();

            if (singleButton)
            {
                rm.showReturn = true;
            }

            EditorGUI.BeginDisabledGroup(rm.showReturn == false);

            rm.returnButton.foldoutState = EditorGUILayout.Foldout(rm.returnButton.foldoutState, "Return Button");

            if (rm.returnButton.foldoutState)
            {
                StringField(ref rm.returnButton.text, "Return Title");

                if (rm.returnButton.text.Trim() == "")
                {
                    SpriteField(ref rm.returnButton.image, "Return Visual");
                }

                EditorGUILayout.PropertyField(serializedObject.FindProperty("returnButton").FindPropertyRelative("action"), true);
            }

            EditorGUI.EndDisabledGroup();

            EditorGUI.indentLevel--;

            Line(new Color(0, 0, 0, 0.5f));

            if (GUILayout.Button("Add Button"))
            {
                buttonList.arraySize++;
                serializedObject.ApplyModifiedProperties();
                rm.buttonList[rm.buttonList.Count - 1] = new GRP_ButtonOptions();
            }

            serializedObject.ApplyModifiedProperties();
        }
    }