private void Player2DropdownValueChange(int index) { initializer2 = OnDropdownValueChange(player2Dropdown, player2PropPanel, initialValues2, Config.Player2No, index); }
private InjectionParser OnDropdownValueChange(TMP_Dropdown dropdown, GameObject propPanel, IDictionary <string, string> initialValues, int playerNo, int index) { foreach (Transform child in propPanel.transform) { Destroy(child.gameObject); } initialValues.Clear(); InjectionParser initializer = Player.GenerateInitializer(((TypedOptionData)dropdown.options[index]).Type, playerNo.ToString()); int yposition = 40; foreach (var parameter in initializer.GetParameters()) { Selectable i = null; var resolvedType = initializer.ResolveType(parameter); if (resolvedType == typeof(bool)) { var instance = Instantiate(toggle); instance.GetComponentInChildren <Text>().text = parameter; initialValues[parameter] = instance.isOn.ToString(); instance.onValueChanged.AddListener(value => initialValues[parameter] = value.ToString()); i = instance; } else if (initializer.ResolveChoices(parameter, out var choices)) { var instance = Instantiate(this.dropdown); var defaultInitialValue = choices[0]; if (choices != null) { for (var c = 0; c < choices.Length; ++c) { instance.options.Add(new TypedOptionData(Type.GetType(choices[c]))); } } instance.value = 0; instance.GetComponentInChildren <TextMeshProUGUI>().text = parameter; initialValues[parameter] = defaultInitialValue; instance.onValueChanged.AddListener(c => initialValues[parameter] = ((TypedOptionData)instance.options[c]).Type.FullName); i = instance; } else { var instance = Instantiate(inputField); instance.placeholder.GetComponent <TextMeshProUGUI>().text = parameter; if (resolvedType == typeof(int)) { instance.contentType = TMP_InputField.ContentType.IntegerNumber; instance.text = "0"; } if (resolvedType == typeof(float)) { instance.contentType = TMP_InputField.ContentType.DecimalNumber; instance.text = "0.0"; } initialValues[parameter] = instance.text; instance.onValueChanged.AddListener(value => initialValues[parameter] = value.ToString()); i = instance; } i.gameObject.transform.SetParent(propPanel.transform, false); var position = i.transform.localPosition; position.y += yposition; i.transform.localPosition = position; i.transform.localScale = new Vector3(1.5f, 1.5f, 1.5f); yposition -= 60; } return(initializer); }
private void Player1DropdownValueChange(int index) { initializer1 = OnDropdownValueChange(player1Dropdown, player1PropPanel, initialValues1, Config.Player1No, index); }