Exemple #1
0
    public static void RefreshSettingHelpOverlay()
    {
        ButtonSetting helpOverlay = interfaceHeader.Find("HelpOverlayLabel").GetComponent <ButtonSetting>();

        helpOverlay.RefreshData();
        helpOverlay.RefreshText();
    }
 // Update is called once per frame
 void Update()
 {
     selnum = SelectNum.Select;                 //선택한 숫자를 가져옴 (선택지 미출현시 0으로 고정)
     if (selnum != 0)                           //선택한 숫자가 0이 아닌경우(선택지가 선택된 경우)
     {
         ScriptRefresh(txtname + "-" + selnum); //선택한 숫자에 대해 대사집을 불러와 새로 고침.
         selnum = 0;                            //중복선택되지 않도록 선택한 숫자를 다시 0으로 둠.
     }
     if (Input.GetKeyDown(KeyCode.Return))      //엔터키를 누른경우
     {
         StopCoroutine("Printing");             //실행중이던 코루틴 중지
         //au.Stop(); //실행되던 효과음 중지
         if (cnt == scripts.Count - 1)          //스크립트의 끝에 도달한경우
         {
             Debug.Log(":" + cnt);
             Debug.Log(scripts.Count - 1);
             ButtonSetting.Create(prefabButton, new string[] { "아이템을 줍는다", "아이템을 줍지않는다" });                 //버튼 생성.
             a++;
         }
         if (cnt == scripts.Count - 1 && a == 2)           //스크립트의 끝에 도달한경우
         {
             Debug.Log("여기서 삭제");
             Destroy(asd);
             Destroy(zxc);
             GameObject.Find("data").GetComponent <Data> ().item303++;
         }
         else
         {
             cnt++;                      //다음 index를 읽기 위해 index 상승.
             Debug.Log(cnt);
             StartCoroutine("Printing"); //코루틴 재실행
         }
     }
 }
    public void Click()
    {
        Button btn = GetComponent <Button>();                                   //현재 객체를 가져온다.

        SelectNum.Select = Convert.ToInt32(Regex.Replace(btn.name, @"\D", "")); //객체의 이름에서 숫자만 남긴걸 int변환해 현재 선택된 선택지 번호로서 삼는다.
        ButtonSetting.Delete();                                                 //현재 표시되있는 버튼 객체들을 모두 제거한다.
    }
Exemple #4
0
        /// <summary>
        /// 按鈕Json 建檔與讀取
        /// </summary>
        /// <returns></returns>
        public static ButtonSetting InitialButtonLoad()
        {
            ButtonSetting setting = null;

            if (!Directory.Exists($"{MyWorkPath}\\stf"))
            {
                Directory.CreateDirectory($"{MyWorkPath}\\stf");
            }
            string SettingPath = $"{MyWorkPath}\\stf\\button.json";

            try
            {
                if (File.Exists(SettingPath))
                {
                    string json = File.ReadAllText(SettingPath, Encoding.UTF8);
                    setting = JsonConvert.DeserializeObject <ButtonSetting>(json);
                }
                else
                {
                    ButtonSetting Setting = new ButtonSetting()
                    {
                        //群組與列表按鈕設定
                        ButtonGroupSettings =
                        {
                            new ButtonGroupSetting()
                            {
                                // 0 = 群組,1 = 列表
                                ButtonStyle = 1,
                                //群組名稱
                                GroupName = "群組名稱",
                                // 群組標註
                                GroupTag = 0,
                                //列表按鈕設定
                                ButtonItemSettings =
                                {
                                    new ButtonItemSetting()
                                    {
                                        //列表名稱
                                        ItemName = "列表名稱",
                                        //列表標註
                                        ItemTag = 0,
                                        //控制畫面顯示
                                        ControlVisible = true
                                    }
                                }
                            }
                        }
                    };
                    setting = Setting;
                    string output = JsonConvert.SerializeObject(setting, Formatting.Indented, new JsonSerializerSettings());
                    File.WriteAllText(SettingPath, output);
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex, "按鈕載入失敗");
            }
            return(setting);
        }
Exemple #5
0
    //    public PauseScreen thePauseScreen;


    // Use this for initialization
    void Start()
    {
        thePlayer        = FindObjectOfType <PlayerController>();
        theCamera        = FindObjectOfType <CameraController>();
        theLevelManager  = FindObjectOfType <LevelManager>();
        theButtonSetting = FindObjectOfType <ButtonSetting>();
        //        thePauseScreen = FindObjectOfType <PauseScreen>();
    }
Exemple #6
0
        private void Button_MouseDown(object sender, MouseButtonEventArgs e)
        {
            var           obj           = sender as FrameworkElement;
            ButtonSetting buttonSetting = new ButtonSetting(obj);

            buttonSetting.ParentWindow = this;
            cc.Content = new Frame {
                Content = buttonSetting
            };
            ccp.Visibility = Visibility;
            cc.Visibility  = Visibility.Visible;
            //MessageBox.Show(obj.Name);
        }
Exemple #7
0
    public JoystickSettings()
    {
        axisSetting   = new AxisSetting[axisLabels.Length];
        buttonSetting = new ButtonSetting[buttonLabels.Length];

        for (int i = 0; i < axisLabels.Length; i++)
        {
            axisSetting[i] = new AxisSetting(axisLabels[i]);
        }

        for (int i = 0; i < buttonLabels.Length; i++)
        {
            buttonSetting[i] = new ButtonSetting(buttonLabels[i]);
        }
    }
        /// <summary>
        /// 按鈕建立
        /// </summary>
        /// <param name="buttonSetting">按鈕設定檔</param>
        public void AccordionLoad(AccordionControl accordionControl1, ButtonSetting buttonSetting)
        {
            AccordionControl = accordionControl1;
            accordionControl1.Clear();
            accordionControl1.AllowItemSelection = true;
            if (buttonSetting != null)
            {
                foreach (var item in buttonSetting.ButtonGroupSettings)
                {
                    ButtonTypeEnum ButtonTypeEnum = (ButtonTypeEnum)item.ButtonStyle;
                    switch (ButtonTypeEnum)
                    {
                    case ButtonTypeEnum.Group:     // 群組
                    {
                        //
                        //列表
                        //
                        AccordionControlElement[] ButtonItem = new AccordionControlElement[item.ButtonItemSettings.Count];        //建立列表
                        for (int i = 0; i < item.ButtonItemSettings.Count; i++)
                        {
                            ButtonItem[i] = new AccordionControlElement()
                            {
                                Style = ElementStyle.Item,                   //設定列表類型
                                Name  = item.ButtonItemSettings[i].ItemName, // 設定顯示名稱
                                Tag   = item.ButtonItemSettings[i],          //自訂TAG
                                Text  = item.ButtonItemSettings[i].ItemName, //縮小名稱
                            };
                            AccordionControlElements.Add(ButtonItem[i]);
                        }
                        //
                        // 群組
                        //
                        AccordionControlElement Group = new AccordionControlElement(); //建立群組
                        Group.Expanded = false;                                        //不顯示列表
                        Group.Name     = item.GroupName;                               // 設定顯示名稱
                        Group.Text     = item.GroupName;                               //縮小名稱
                                                                                       //Group.ImageOptions.Image= System.Drawing.Bitmap//加入ICON
                        /*設定字體*/
                        Group.Appearance.Normal.FontStyleDelta  = FontStyle.Bold;
                        Group.Appearance.Normal.Name            = "微軟正黑體";
                        Group.Appearance.Normal.FontSizeDelta   = 10;
                        Group.Appearance.Hovered.FontStyleDelta = FontStyle.Bold;
                        Group.Appearance.Hovered.Name           = "微軟正黑體";
                        Group.Appearance.Hovered.FontSizeDelta  = 10;
                        Group.Appearance.Pressed.FontStyleDelta = FontStyle.Bold;
                        Group.Appearance.Pressed.Name           = "微軟正黑體";
                        Group.Appearance.Pressed.FontSizeDelta  = 10;
                        Group.Elements.AddRange(ButtonItem);        //將列表加入至群組
                        accordionControl1.Elements.Add(Group);      //將群組加入至控制物件
                                                                    //
                                                                    //列表
                                                                    //
                        for (int i = 0; i < item.ButtonItemSettings.Count; i++)
                        {
                            /*設定字體*/
                            ButtonItem[i].Appearance.Normal.FontStyleDelta  = FontStyle.Bold;
                            ButtonItem[i].Appearance.Normal.Name            = "微軟正黑體";
                            ButtonItem[i].Appearance.Normal.FontSizeDelta   = 8;
                            ButtonItem[i].Appearance.Hovered.FontStyleDelta = FontStyle.Bold;
                            ButtonItem[i].Appearance.Hovered.Name           = "微軟正黑體";
                            ButtonItem[i].Appearance.Hovered.FontSizeDelta  = 8;
                            ButtonItem[i].Appearance.Pressed.FontStyleDelta = FontStyle.Bold;
                            ButtonItem[i].Appearance.Pressed.Name           = "微軟正黑體";
                            ButtonItem[i].Appearance.Pressed.FontSizeDelta  = 8;
                        }
                    }
                    break;

                    case ButtonTypeEnum.Item:     //列表
                    {
                        AccordionControlElement ButtonItem = new AccordionControlElement()
                        {
                            Style = ElementStyle.Item,
                            Name  = item.ButtonItemSettings[0].ItemName,
                            Tag   = item.ButtonItemSettings[0],
                            Text  = item.ButtonItemSettings[0].ItemName,
                        };
                        ButtonItem.Appearance.Normal.FontStyleDelta  = FontStyle.Bold;
                        ButtonItem.Appearance.Normal.Name            = "微軟正黑體";
                        ButtonItem.Appearance.Normal.FontSizeDelta   = 8;
                        ButtonItem.Appearance.Hovered.FontStyleDelta = FontStyle.Bold;
                        ButtonItem.Appearance.Hovered.Name           = "微軟正黑體";
                        ButtonItem.Appearance.Hovered.FontSizeDelta  = 8;
                        ButtonItem.Appearance.Pressed.FontStyleDelta = FontStyle.Bold;
                        ButtonItem.Appearance.Pressed.Name           = "微軟正黑體";
                        ButtonItem.Appearance.Pressed.FontSizeDelta  = 8;
                        accordionControl1.Elements.Add(ButtonItem);
                        AccordionControlElements.Add(ButtonItem);
                    }
                    break;
                    }
                }
                accordionControl1.OptionsMinimizing.AllowMinimizeMode = DevExpress.Utils.DefaultBoolean.False;         // 鎖定視窗
                accordionControl1.ElementClick   += new ElementClickEventHandler(this.accordionControl1_ElementClick); //按鈕事件
                accordionControl1.SelectedElement = AccordionControlElements[0];                                       //觸發初始按鈕
            }
        }
Exemple #9
0
    private void CompareReadSettingsWithModelAndFillValues()
    {
        //compare the settings read from the xml with the settings read from the model
        //copy everything from the model, but keep the value from the xml
        //this way editing the model (Displayname, Defaultvalue...) is applied, but the saved value from the settings in the xml remains the same

        ExtendedManagerSettings mergedSettings = new ExtendedManagerSettings();

        var modelFields = _settings.GetType().GetFields();

        foreach (FieldInfo modelField in modelFields)
        {
            //if the setting exists in the the xml file, overwrite the default value with the read value
            foreach (FieldInfo readField in _settingsReadFromXml.GetType().GetFields())
            {
                //if the same fields have been found (one field read from the xml, the other coming from the model)
                if (modelField.Name == readField.Name)
                {
                    if (modelField.Name == "SettingsCreatedVersion" || modelField.Name == "CurrentSettingsVersion") //settingsversion is a property but not a setting
                    {
                        if (IsSettingAlreadyPresentInXmlFile(modelField.Name))
                        {
                            string modelVersion        = ((string)modelField.GetValue(_settings));
                            string readSettingsVersion = ((string)readField.GetValue(_settingsReadFromXml));

                            if (modelVersion != readSettingsVersion)
                            {
                                Debug.LogWarningFormat("Settings created with other version of the settingsmanager. It's advised that you remove the old SettingsCanvasPrefab from your scene and replace it with the new one. \nVersion went from '{0}' to '{1}' \n----------------------------", readSettingsVersion, modelVersion);
                            }
                        }

                        continue; //skip to other iteration
                    }

                    //copy everything from the model, but keep the value from the xml
                    if (modelField.FieldType.IsGenericType) //generic type: string, bool, vector2...
                    {
#if !UNITY_IOS
                        if (IsSettingAlreadyPresentInXmlFile(modelField.Name))
                        {
                            //setting is present in xml, apply the xml value to the field
                            var type = modelField.FieldType.GetGenericArguments()[0];
                            var genericMergeSettingsMethod = GetType().GetMethod("MergeSettings", BindingFlags.Instance | BindingFlags.NonPublic).MakeGenericMethod(type);
                            genericMergeSettingsMethod.Invoke(this, new object[] { mergedSettings, modelField, readField });
                        }
                        else
                        {
                            //setting is not present in xml, apply the default value to the field
                            var type = modelField.FieldType.GetGenericArguments()[0];
                            var genericApplyDefaultSettingsMethod = GetType().GetMethod("ApplyDefaultValueOnSetting", BindingFlags.Instance | BindingFlags.NonPublic).MakeGenericMethod(type);
                            genericApplyDefaultSettingsMethod.Invoke(this, new object[] { mergedSettings, modelField });
                        }
#else
                        if (modelField.FieldType.GetGenericArguments()[0] == typeof(bool))
                        {
                            if (IsSettingAlreadyPresentInXmlFile(modelField.Name))
                            {
                                MergeSettings_bool(mergedSettings, modelField, readField);
                            }
                            else
                            {
                                ApplyDefaultValueOnSetting_bool(mergedSettings, modelField);
                            }
                        }
                        else if (modelField.FieldType.GetGenericArguments()[0] == typeof(string))
                        {
                            if (IsSettingAlreadyPresentInXmlFile(modelField.Name))
                            {
                                MergeSettings_string(mergedSettings, modelField, readField);
                            }
                            else
                            {
                                ApplyDefaultValueOnSetting_string(mergedSettings, modelField);
                            }
                        }
                        else if (modelField.FieldType.GetGenericArguments()[0] == typeof(float))
                        {
                            if (IsSettingAlreadyPresentInXmlFile(modelField.Name))
                            {
                                MergeSettings_float(mergedSettings, modelField, readField);
                            }
                            else
                            {
                                ApplyDefaultValueOnSetting_float(mergedSettings, modelField);
                            }
                        }
                        else if (modelField.FieldType.GetGenericArguments()[0] == typeof(Vector2))
                        {
                            if (IsSettingAlreadyPresentInXmlFile(modelField.Name))
                            {
                                MergeSettings_vector2(mergedSettings, modelField, readField);
                            }
                            else
                            {
                                ApplyDefaultValueOnSetting_vector2(mergedSettings, modelField);
                            }
                        }
                        else if (modelField.FieldType.GetGenericArguments()[0] == typeof(Vector3))
                        {
                            if (IsSettingAlreadyPresentInXmlFile(modelField.Name))
                            {
                                MergeSettings_vector3(mergedSettings, modelField, readField);
                            }
                            else
                            {
                                ApplyDefaultValueOnSetting_vector3(mergedSettings, modelField);
                            }
                        }
                        else
                        {
                            Debug.LogWarning(string.Format("Field of type '{0}' not yet implemented.", modelField.FieldType.Name));
                        }
#endif
                    }
                    else //non generic type
                    {
                        if (IsSettingAlreadyPresentInXmlFile(modelField.Name))
                        {
                            //setting is present in xml, apply the xml value to the field
                            if (modelField.FieldType == typeof(MinMaxSetting))
                            {
                                MinMaxSetting mergedSetting = ((MinMaxSetting)modelField.GetValue(_settings));
                                MinMaxSetting readSetting   = ((MinMaxSetting)readField.GetValue(_settingsReadFromXml));
                                mergedSetting.Value = readSetting.Value;
                                mergedSettings.GetType().GetField(modelField.Name).SetValue(mergedSettings, mergedSetting);
                            }
                            else if (modelField.FieldType == typeof(ButtonSetting))
                            {
                                ButtonSetting mergedSetting = ((ButtonSetting)modelField.GetValue(_settings));
                                ButtonSetting readSetting   = ((ButtonSetting)readField.GetValue(_settingsReadFromXml));
                                mergedSetting.Value = readSetting.Value;
                                mergedSettings.GetType().GetField(modelField.Name).SetValue(mergedSettings, mergedSetting);
                            }
                            else
                            {
                                Debug.LogWarning(string.Format("Field of type '{0}' not yet implemented.", modelField.FieldType.Name));
                            }
                        }
                        else
                        {
                            if (modelField.FieldType == typeof(MinMaxSetting))
                            {
                                //setting is not present in xml, apply the default value to the field
                                MinMaxSetting mergedSetting = ((MinMaxSetting)modelField.GetValue(_settings));
                                mergedSetting.Value = mergedSetting.Defaultvalue;
                                mergedSettings.GetType().GetField(modelField.Name).SetValue(mergedSettings, mergedSetting);
                            }
                            else if (modelField.FieldType == typeof(ButtonSetting))
                            {
                                //setting is not present in xml, apply the default value to the field
                                ButtonSetting mergedSetting = ((ButtonSetting)modelField.GetValue(_settings));
                                mergedSetting.Value = mergedSetting.Defaultvalue;
                                mergedSettings.GetType().GetField(modelField.Name).SetValue(mergedSettings, mergedSetting);
                            }
                            else
                            {
                                Debug.LogWarning(string.Format("Field of type '{0}' not yet implemented.", modelField.FieldType.Name));
                            }
                        }
                    }
                }
            }
        }

        Settings = mergedSettings;

        //save the merged settings to the xml file
        Settings.SerializeToXmlFile();
    }