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; }
void Start() { Instance = this; }