Exemplo n.º 1
0
 private void Player2DropdownValueChange(int index)
 {
     initializer2 = OnDropdownValueChange(player2Dropdown, player2PropPanel, initialValues2, Config.Player2No, index);
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 private void Player1DropdownValueChange(int index)
 {
     initializer1 = OnDropdownValueChange(player1Dropdown, player1PropPanel, initialValues1, Config.Player1No, index);
 }