unity3d - ui.inputfield 可以将来自文本框和输入的数据相互重叠显示吗?
问题描述
我有一个带有 ui.inputfield 的 Unity Droid 应用程序。我让用户能够输入数字或移动滑块。在任何一种情况下,我都需要让滑块数据出现在输入字段中,或者使用输入字段中输入的数字更新滑块位置。我可以从输入字段或滑块中获取数据,但我需要显示数据。我主要关心的是我能否将来自两个输入的数据显示在与输入字段完全相同的位置,例如顶部?我在输入字段顶部找不到任何数据显示示例。这是思考这个问题的正确方法吗?先感谢您。
解决方案
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");
}
}
推荐阅读
- c# - PasswordBox 值未在视图模型中更新
- java - 无法在 windows 上运行 java 字节码,在 mac 上编译
- stream - Webmethods(Software AG Designer 9.12):解析巨大的平面文件
- c# - 存储过程不返回数据集
- sqlite - 如何按升序排列两列之间的计算比率?
- javascript - 为什么 forEach 可以与 e.target.children 一起使用,但不能与 getElementById 孩子一起使用?
- javascript - 点击后如何再次进行 v-for 更新?
- c# - 玩家在相机方向移动并且能够在没有动画的情况下跳跃
- reactjs - 如何更改 VictoryTooltip 的 fontStyle 和边框颜色
- .net - 在 .NET Core MVC 中从一个模型访问另一个模型的数据