Unity UI Slider 更改 UI 文本

Posted

技术标签:

【中文标题】Unity UI Slider 更改 UI 文本【英文标题】:Unity UI Slider to change UI Text 【发布时间】:2015-04-27 12:21:41 【问题描述】:

好的,我使用的是 unity 4.6,并且有一个对播放器可见的 UI 滑块。在滑块旁边,我有一个 UI 文本,它显示一个 500 的字符串。滑块头位于右侧(500),可以向左滑动到我想要的 0。 我有以下代码,但是当我滑动滑块时,文本值从 500 开始并自动更改为 0.99,并在左侧一直向下移动到 0。如果我要将它滑回右侧,它的值为 1。

public class SliderUITextUpdate : MonoBehaviour 

string sliderTextString = "500";
public Text sliderText;

public void textUpdate(float textUpdateNumber)

    sliderTextString = textUpdateNumber.ToString ();
    sliderText.text = sliderTextString;
 

此脚本附加到一个管理器对象(只是一个空的游戏对象),然后将文本游戏对象应用到检查器中。 在滑块对象上,我在检查器中使用 OnValueChanged() 功能。我已附加 Manager 游戏对象并将其设置为使用 SliderUITexture.textUpdate

任何帮助都会非常感谢!

【问题讨论】:

你改变了滑块上的 minValues 和 maxValues 吗? 在检查器中,方向是从左到右,最小值 0,最大值 1...下面的值设置为 1 就是这样。 minValue 和 maxValue 决定滑块的结果。如果您需要一个介于 0 到 500 之间的值,则需要将 minValue 设置为 0 并将 maxValue 设置为 500,无论是在检查器中还是(丑陋)在第一个答案等代码中。 非常感谢!!单独的查询,将节省我写另一个问题...如果我要获取滑块停止的数字并且当他们点击 OK 按钮时,如何将该数字添加到另一个脚本中的单独数字中。我有一个带有 score 变量的 Score 脚本,我知道调用你使用 Score.score ?? 您需要引用另一个脚本并使用该值调用一些公共变量/方法,或者向另一个脚本发送统一消息。 【参考方案1】:
public class SliderUITextUpdate : MonoBehaviour 

string sliderTextString = "500";
public Text sliderText;
public Slider mainSlider;

void Awake()
   mainSlider.maxValue = 500;


public void textUpdate(float textUpdateNumber)

    sliderTextString = textUpdateNumber.ToString ();
    sliderText.text = sliderTextString;
 

在检查器中获取该滑块的参考

【讨论】:

以上是关于Unity UI Slider 更改 UI 文本的主要内容,如果未能解决你的问题,请参考以下文章

Unity 向 UI Slider 发送值并更新 Slider bar

如何模拟 Material UI Slider 上的值变化?

Jquery UI Slider在输入字段中更改时更改滑块的值

在 Unity 中更改分辨率时,如何使我的 UI 文本以我的 2d 对象为中心?

Unity入门Unity中动态控制UI的常规思路以及UI反馈效果(3D画布透明位置交替)

如何使用按钮更改 UI Slider 的物理位置