예제 #1
0
    private void createGameObjectsForSettings(List <Setting> settings, int tabIndex)
    {
        List <GameObject> settingsInTab  = new List <GameObject>();
        List <Adjuster>   adjustersInTab = new List <Adjuster>();

        foreach (Setting setting in settings)
        {
            if (setting.category == SETTINGS_TABS[tabIndex].transform.Find("Label").gameObject.GetComponent <TextMeshProUGUI>().text)
            {
                GameObject settingGameObject = GameObject.Instantiate(Resources.Load("Prefabs/Setting") as GameObject);
                settingGameObject.transform.Find("Label").GetComponent <TextMeshProUGUI>().text = setting.name;
                Adjuster adjuster = null;
                switch (setting.adjustmentMethod)
                {
                case "Color":
                    adjuster = new ColorAdjuster(colorScheme, setting.name, setting.description, setting.options != null ? setting.options : new string[] { }, setting.currentValue != null ? setting.currentValue : "");
                    break;

                case "Dropdown":
                    adjuster = new DropdownAdjuster(colorScheme, setting.name, setting.description, setting.defaultValue != null ? setting.defaultValue : "", setting.options != null ? setting.options : new string[] { }, setting.currentValue != null ? int.Parse(setting.currentValue) : 0);
                    break;

                case "Image":
                    adjuster = new ImageAdjuster(colorScheme, setting.name, setting.description, setting.options != null ? setting.options : new string[] { }, setting.currentValue != null ? setting.currentValue : "");
                    break;

                case "Increment":
                    adjuster = new IncrementAdjuster(colorScheme, setting.name, setting.description, setting.options != null && setting.options.Length >= 1 ? int.Parse(setting.options[0]) : 0, setting.options != null && setting.options.Length >= 2 ? int.Parse(setting.options[1]) : 0, setting.currentValue != null ? int.Parse(setting.currentValue) : 0);
                    break;

                case "Input":
                    adjuster = new InputAdjuster(colorScheme, setting.name, setting.description, setting.placeholder != null ? setting.placeholder : "", setting.currentValue != null ? setting.currentValue : "", setting.options != null && setting.options.Length >= 1 ? bool.Parse(setting.options[0]) : false);
                    break;

                case "Slider":
                    adjuster = new SliderAdjuster(colorScheme, setting.name, setting.description, setting.options != null && setting.options.Length >= 1 ? float.Parse(setting.options[0]) : 0, setting.options != null && setting.options.Length >= 2 ? float.Parse(setting.options[1]) : 0, setting.currentValue != null ? float.Parse(setting.currentValue) : 0, setting.options != null && setting.options.Length >= 3 ? setting.options[2] : "");
                    break;

                case "Switch":
                    adjuster = new SwitchAdjuster(colorScheme, setting.name, setting.description, setting.options != null && setting.options.Length >= 1 ? setting.options[0] : "", setting.options != null && setting.options.Length >= 2 ? setting.options[1] : "", setting.currentValue != null && bool.Parse(setting.currentValue.ToLower()));
                    break;

                case "Button":
                default:
                    adjuster = new ButtonAdjuster(colorScheme, setting.name, setting.description, setting.options != null && setting.options.Length >= 1 ? setting.options[0] : "", setting.currentValue != null && bool.Parse(setting.currentValue.ToLower()));
                    break;
                }
                adjuster.GAME_OBJECT.transform.SetParent(settingGameObject.transform.Find("AdjustmentMethod"));
                settingsInTab.Add(settingGameObject);
                adjustersInTab.Add(adjuster);
            }
        }
        SETTINGS_IN_TABS[tabIndex]  = settingsInTab;
        ADJUSTERS_IN_TABS[tabIndex] = adjustersInTab;
    }
예제 #2
0
 void Start()
 {
     Instance = this;
 }