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; } } }