void UpdateAllButtons() { foreach (GameObject button in this.buttons) { ButtonParam buttonParam = button.GetComponent <ButtonParam>(); buttonParam.UpdateButton(); } }
public static string WXSelectMenuUrl = BaseCore.Configuration["AppSettings:WxConfig:SelectMenuUrl"]; //https://api.weixin.qq.com/cgi-bin/menu/get?access_token=ACCESS_TOKEN /// <summary> /// 创建自定义菜单 /// 文档地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141013 /// 请求地址:https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN /// </summary> /// <param name="buttonParam"></param> public static string CreateMenu(ButtonParam buttonParam) { var requestUrl = WXCreateMenuUrl + "?access_token=" + AccessToken; var result = Tools.Post(new PostParam() { ContentType = ContentType.FormUrlEncoded, Url = requestUrl, RequestData = buttonParam.ObjToJson() }); return(result); }
void EndScan(GameObject button) { Button buttonScript = button.GetComponent <Button>(); buttonScript.interactable = true; eventSystem.SetSelectedGameObject(button); ButtonParam buttonParam = button.GetComponent <ButtonParam>(); buttonParam.UpdateButton(); TextManager.UpdateAllText(); this.eventSystemGameObject.SetActive(true); InputLoader.PlayerPrefsSave(this.standardInputSave); }
public IActionResult CreateMenu() { var data = new ButtonParam() { button = new List <BaseButton>() }; //添加一个一级菜单 data.button.Add(new ViewButton() { name = "首页", type = ButtonType.view.ToString(), url = "http://277366155.cn" }); //添加带有二级菜单的按钮 var menuBtns = new SubButtonList() { name = "菜单管理", sub_button = new List <Button>() }; menuBtns.sub_button.Add(new ViewButton() { name = "重建菜单", type = ButtonType.view.ToString(), url = "http://277366155.cn/wx/menu/create" }); menuBtns.sub_button.Add(new ViewButton() { name = "查看菜单", type = ButtonType.view.ToString(), url = "http://277366155.cn/wx/menu/select" }); data.button.Add(menuBtns); var subBtns = new SubButtonList() { name = "其他", sub_button = new List <Button>() }; subBtns.sub_button.Add(new ViewButton() { name = "个人信息", type = ButtonType.view.ToString(), url = "http://277366155.cn/home/info" }); data.button.Add(subBtns); return(Content(WxApi.WxApi.CreateMenu(data))); }
/// <summary> /// OnInspectorGUI時に呼び出す /// </summary> public void OnInspectorGUI(Object target) { if (string.IsNullOrEmpty(m_DirectoryPath)) { EditorGUILayout.HelpBox("フォルダを選択してください", MessageType.Warning, true); return; } if (m_Settings == null) { m_Settings = new Settings(); } OnDrawHeaderMenu(); OnDrawAddSettingMenu(); m_ScrollPosition = EditorGUILayout.BeginScrollView(m_ScrollPosition); List <Setting> deleteSetting = new List <Setting> (); ButtonParam button = new ButtonParam() { name = "削除" }; for (int i = 0; i < m_Settings.settings.Count; i++) { var setting = m_Settings.settings [i]; Setting parentSetting = null; if (m_ParentSettings != null) { parentSetting = m_ParentSettings.GetSetting(setting.Type); } button.onClick = () => { deleteSetting.Add(setting); }; OnDrawSetting(setting, parentSetting, button); EditorGUILayout.Space(); } if (m_ParentSettings != null) { for (int i = 0; i < m_ParentSettings.settings.Count; i++) { var setting = m_ParentSettings.settings [i]; if (m_Settings.Has(setting.Type)) { continue; } OnDrawSetting(null, setting); EditorGUILayout.Space(); } } for (int i = 0; i < deleteSetting.Count; i++) { m_Settings.settings.Remove(deleteSetting[i]); } EditorGUILayout.EndScrollView(); }
private void OnDrawProperty(Property property, FieldInfo[] fieldList, string[] propertyList, ButtonParam button) { EditorGUILayout.BeginVertical(GUI.skin.box); EditorGUILayout.BeginHorizontal(); { var toggleLabel = property.isEnabled ? "有効" : "無効"; property.isEnabled = EditorGUILayout.ToggleLeft(toggleLabel, property.isEnabled); if (button != null) { var prevEnabled = GUI.enabled; GUI.enabled = true; var prevColor = GUI.backgroundColor; GUI.backgroundColor = button.backgroundColor; if (GUILayout.Button(button.name)) { if (button.onClick != null) { button.onClick(); } } GUI.backgroundColor = prevColor; GUI.enabled = prevEnabled; } } EditorGUILayout.EndHorizontal(); EditorGUI.BeginChangeCheck(); int index = System.Array.IndexOf(propertyList, property.name); index = EditorGUILayout.Popup("設定", index, propertyList); if (EditorGUI.EndChangeCheck()) { property.name = propertyList [index]; property.value = ""; } if (index < 0 || index >= fieldList.Length) { EditorGUILayout.EndVertical(); return; } var field = fieldList [index]; var fieldType = field.FieldType; if (string.IsNullOrEmpty(property.value)) { if (fieldType == typeof(string)) { property.value = ""; } else { property.value = System.Activator.CreateInstance(fieldType).ToString(); } } while (true) { if (fieldType == typeof(int)) { property.value = EditorGUILayout.IntField("値", int.Parse(property.value)).ToString(); break; } if (fieldType == typeof(float)) { property.value = EditorGUILayout.FloatField("値", float.Parse(property.value)).ToString(); break; } if (fieldType == typeof(bool)) { property.value = EditorGUILayout.Toggle("値", bool.Parse(property.value)).ToString(); break; } if (fieldType == typeof(string)) { property.value = EditorGUILayout.TextField("値", property.value).ToString(); break; } if (fieldType.IsEnum) { property.value = EditorGUILayout.EnumPopup("値", System.Enum.Parse(fieldType, property.value) as System.Enum).ToString(); break; } var prevColor = GUI.color; GUI.color = Color.red; EditorGUILayout.LabelField("未定義の型のため値を設定できません"); GUI.color = prevColor; break; } EditorGUILayout.EndVertical(); }
private void OnDrawSetting(Setting setting, Setting parentSetting, ButtonParam button = null) { if (setting == null && parentSetting == null) { return; } var type = (setting != null ? setting.Type : parentSetting.Type); var fieldList = type.GetFields(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetField | BindingFlags.GetProperty); var nameList = fieldList.Select(o => o.Name).ToArray(); EditorGUILayout.BeginVertical(GUI.skin.box); if (setting != null) { EditorGUILayout.BeginHorizontal(); setting.isEnabled = EditorGUILayout.ToggleLeft(setting.Type.Name, setting.isEnabled); if (button != null) { if (GUILayout.Button(button.name)) { if (button.onClick != null) { button.onClick(); } } } EditorGUILayout.EndHorizontal(); if (!setting.isEnabled) { string msg = "親フォルダの設定を無効化しています" + System.Environment.NewLine; msg += "親フォルダの設定に影響を与えたくない場合は、削除ボタンを押してください"; EditorGUILayout.HelpBox(msg, MessageType.None, true); EditorGUILayout.EndVertical(); return; } List <Property> deleteProperties = new List <Property> (); ButtonParam buttonParam = new ButtonParam() { name = "削除", backgroundColor = Color.red }; for (int i = 0; i < setting.properties.Count; i++) { var property = setting.properties [i]; buttonParam.onClick = () => { deleteProperties.Add(property); }; OnDrawProperty(property, fieldList, nameList, buttonParam); } for (int i = 0; i < deleteProperties.Count; i++) { setting.properties.Remove(deleteProperties [i]); } if (GUILayout.Button("設定を追加")) { setting.properties.Add(new Property()); } } if (parentSetting != null) { var targetProperties = parentSetting.properties .Where( o => { if (setting != null) { if (setting.HasProperty(o.name)) { return(false); } } if (!o.isEnabled) { return(false); } return(true); }) .ToArray(); if (targetProperties.Length <= 0) { EditorGUILayout.EndVertical(); return; } GUI.enabled = false; var prevColor = GUI.backgroundColor; GUI.backgroundColor = Color.red; if (setting == null) { parentSetting.isEnabled = EditorGUILayout.ToggleLeft("※" + parentSetting.Type.Name, parentSetting.isEnabled); EditorGUILayout.HelpBox("親フォルダの設定が適用されています", MessageType.None, true); } ButtonParam buttonParam = new ButtonParam() { name = "コピー", backgroundColor = prevColor }; for (int i = 0; i < targetProperties.Length; i++) { var property = targetProperties [i]; if (setting != null) { if (setting.HasProperty(property.name)) { continue; } } if (!property.isEnabled) { continue; } buttonParam.onClick = () => { var currentSetting = m_Settings.GetSetting(parentSetting.Type); if (currentSetting == null) { currentSetting = new Setting(); currentSetting.Type = parentSetting.Type; m_Settings.settings.Add(currentSetting); } currentSetting.properties.Add(property.Copy()); }; OnDrawProperty(property, fieldList, nameList, buttonParam); } GUI.backgroundColor = prevColor; GUI.enabled = true; } EditorGUILayout.EndVertical(); }
public void Click(Button button, ButtonParam param) { button.Click(); }