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); }
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; }
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); }
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); }); }
public override void ResetButtons() { returnButton = new GRP_ButtonOptions(); returnButton.action = new GRP_Event(); buttonList = new List <GRP_ButtonOptions>(); }
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(); } }