ui.inputfield 可以将来自文本框和输入的数据相互重叠显示吗?
Posted
技术标签:
【中文标题】ui.inputfield 可以将来自文本框和输入的数据相互重叠显示吗?【英文标题】:can the ui.inputfield have the data from both text box and input displayed overlaying each other? 【发布时间】:2020-06-22 14:45:28 【问题描述】:我有一个带有 ui.inputfield 的 Unity Droid 应用。我让用户能够输入数字或移动滑块。在任何一种情况下,我都需要让滑块数据出现在输入字段中,或者使用输入字段中输入的数字更新滑块位置。我可以从输入字段或滑块中获取数据,但我需要显示数据。我主要关心的是我能否将来自两个输入的数据显示在与输入字段完全相同的位置,例如顶部? 我在输入字段顶部找不到任何数据显示示例。这是思考这个问题的正确方法吗? 提前谢谢你。
【问题讨论】:
【参考方案1】:每当用户更改UI.Slider
或完成在UI.InputField
中输入值时,都会有回调:
UI.Slider.onValueChanged
UI.InputField.onEndEdit
所以是的,您可以将它们相互链接,例如
public class Example : MonoBehaviour
public InputField inputField;
public Slider slider;
private void Awake()
inputField.onEndEdit.AddListener(OnInputFieldChanged);
slider.onValueChanged .AddListener( OnSliderChanged);
OnSliderChanged(slider.value);
private void OnInputFieldChanged(string newText)
if (float.TryParse(newText, out var value))
value = Mathf.Clamp(value, slider.minValue, slider.maxValue);
inputField.text = value.ToString("F");
slider.value = value;
else
Debug.LogWarning("Input Format Error!", this);
slider.value = Mathf.Clamp(0, slider.minValue, slider.maxValue);
inputField.text = slider.value.ToString("F");
private void OnSliderChanged(float newValue)
inputField.text = newValue.ToString("F");
【讨论】:
这就是答案!谢谢你。我花了 3 天的时间,看不到森林的树木。以上是关于ui.inputfield 可以将来自文本框和输入的数据相互重叠显示吗?的主要内容,如果未能解决你的问题,请参考以下文章