Slider的简单介绍:
在Unity中,经常会使用Slider来做滑动选择物品数量的功能。下图是Slider下的默认属性设置:
常用属性:
上边一系列的属性跟Button的属性是差不多的,都是一些基本设置。
Direction:是用来设置滑块滑动方向的,有四个选项,自己设置一下就知道什么意思了。
MinValue:滑块能够移动的最小值。
MaxValue:滑块能够移动的最大值。
WholeNumbers:是否为整数。
Value:当前的值,取值在MinValue到MaxValue之间,如果WholeNumbers设置为true,则Value为整数。
在Slider中,可以监听onValueChanged事件,当Slider的Value值发生改变时会触发事件。
private Slider m_testSlider;
private void Awake()
{
m_testSlider = GetComponent<Slider>();
}
private void Start()
{
m_testSlider.onValueChanged.AddListener(OnNumSilderChange);
}
private void OnNumSilderChange(float value)
{
Debug.Log(value);
}
如果你的需求是设置一些小数的话,使用Slider不需要做过多的设置,如果你最大值最小值有什么需求的话,找到Slider后,在初始化中修改MinValue、MaxValue的值就ok了。
如果你的需求是设置一些整数的话,只需要将WholeNumbers设置为true。
如果你发现在Slider区域内,不能直接点击UI改变滑块的位置,检查Interactable是否设置为true。
如果你在代码中想改变滑块的位置,在MinValue和MaxValue的合理范围内,直接修改Slider中的Value就可以了。
特殊情况:
当你的需求是设置整数,并且最小值与最大值是相同时,你会发现你的滑块是在你初始化的位置(假如你的Slider滑动是从左到右, 滑块现在的位置就在最左边),并且Slider的Value不能改变,而你又想将滑块放在最右边。
我看到别人的解决方案是:
添加判断,将这种情况特殊处理,比如将最小值设置为0,最大值设置为1,值设置为1。并且不要忘记将Interactable设置为false,否则Slider还可以滑动到0的位置。