首页 > 解决方案 > ui.inputfield 可以将来自文本框和输入的数据相互重叠显示吗?

问题描述

我有一个带有 ui.inputfield 的 Unity Droid 应用程序。我让用户能够输入数字或移动滑块。在任何一种情况下,我都需要让滑块数据出现在输入字段中,或者使用输入字段中输入的数字更新滑块位置。我可以从输入字段或滑块中获取数据,但我需要显示数据。我主要关心的是我能否将来自两个输入的数据显示在与输入字段完全相同的位置,例如顶部?我在输入字段顶部找不到任何数据显示示例。这是思考这个问题的正确方法吗?先感谢您。

标签: unity3duser-interfaceunity3d-2dtools

解决方案


UI.Slider每当用户更改 a或完成在 a 中输入值时,都会有回调UI.InputField

所以是的,您可以将它们相互链接,例如

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

在此处输入图像描述


推荐阅读