Пример #1
0
    public override void SetType(string type, bool linkable, bool switchBtnClicked)
    {
        base.SetType(type, linkable, switchBtnClicked);

        if (type == "link")
        {
            //Input.gameObject.SetActive(false);
            //Input.Input.onValueChanged.
            //Input.Input.onValueChanged.RemoveAllListeners();
        }
        else if (type == ProjectParameterText)
        {
            //Input.gameObject.SetActive(false);
            //Input.Input.onValueChanged.RemoveAllListeners();
        }
        else
        {
            //Input.gameObject.SetActive(true);
            //Input.Input.onValueChanged.RemoveAllListeners();
            Input.SetType(type);
            switch (ParameterMetadata.Type)
            {
            case "integer":
                if (string.IsNullOrEmpty(Input.Input.text))
                {
                    Input.SetValue(ParameterMetadata.GetDefaultValue <int>());
                }

                if (switchBtnClicked)
                {
                    Input.Input.onValueChanged.Invoke(Input.Input.text);
                }
                else
                {
                    Input.Input.onValueChanged.AddListener((string value) => OnChangeInt(value, type));
                }
                break;

            case "double":
                if (string.IsNullOrEmpty(Input.Input.text))
                {
                    Input.SetValue(ParameterMetadata.GetDefaultValue <double>());
                }
                if (switchBtnClicked)
                {
                    Input.Input.onValueChanged.Invoke(Input.Input.text);
                }
                else
                {
                    Input.Input.onValueChanged.AddListener((string value) => OnChangeDouble(value, type));
                }
                break;

            case "string":
                if (string.IsNullOrEmpty(Input.Input.text))
                {
                    Input.SetValue(ParameterMetadata.GetDefaultValue <string>());
                }
                if (switchBtnClicked)
                {
                    Input.Input.onValueChanged.Invoke(Input.Input.text);
                }
                else
                {
                    Input.Input.onValueChanged.AddListener((string value) => onChangeParameterHandler(Input.GetName(), value, type));
                }
                break;
            }
        }
    }