コード例 #1
0
ファイル: KeyBinder.cs プロジェクト: GlintGame/Glint
 void UpdateAllButtons()
 {
     foreach (GameObject button in this.buttons)
     {
         ButtonParam buttonParam = button.GetComponent <ButtonParam>();
         buttonParam.UpdateButton();
     }
 }
コード例 #2
0
        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);
        }
コード例 #3
0
ファイル: KeyBinder.cs プロジェクト: GlintGame/Glint
    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);
    }
コード例 #4
0
ファイル: WxController.cs プロジェクト: 277366155/MsgHelper
        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)));
        }
コード例 #5
0
        /// <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();
        }
コード例 #6
0
        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();
        }
コード例 #7
0
        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();
        }
コード例 #8
0
ファイル: ButtonEx.cs プロジェクト: suriyel/XtmatRT
 public void Click(Button button, ButtonParam param)
 {
     button.Click();
 }