网上购物最实惠的网站,天津力天装饰有限公司,企业管理专业大学排名,电商网站推荐一.Slider对象的结构 对象介绍Slider附加Slider组件Background背景Fill Area填充范围Fill填充对象Handle Slider Area滑块移动范围Handle滑块
二.Slider组件属性 属性说明Fill Rect关联填充对象Handle Rect关联滑块对象Direction设置方向Min Value最大取值Max Value最小取值Wh…一.Slider对象的结构 对象介绍Slider附加Slider组件Background背景Fill Area填充范围Fill填充对象Handle Slider Area滑块移动范围Handle滑块
二.Slider组件属性 属性说明Fill Rect关联填充对象Handle Rect关联滑块对象Direction设置方向Min Value最大取值Max Value最小取值Whole Numbers是否取整Value当前取值 三.事件监听
3.1 可视化监听 3.2 代码监听
public class CSlider : MonoBehaviour
{private Slider _slider;void Start(){_slider GameObject.Find(Slider).GetComponentSlider();_slider.onValueChanged.AddListener(delegate (float value){sliderOnValueChanged(value);});}public void sliderOnValueChanged(float value){Debug.Log(value: value);}
}
四.填充内容占满背景
首先我们进一步的了解默认的Slider对象先将滑块隐藏在最小值和最大值之间拖动Value 可以看到Value最小时填充图片没有消失Value最大时填充范围没有覆盖背景图。
以下设置可以解决这个问题
4.1.把Fill放到Slider下Fill Area删了 4.2 将Fill的宽高设置为和父对象一致 4.3 把Fill的Image组件的ImageType属性设置为Filled把Fill Method设置为Horizontal 将Background和Fill的图片设置后改变Value的值可以看到Value最小时填充消失Value最大时覆盖背景 五.Slider的应用
总体来说Slider很常用游戏中血条进度条设置百分比数值等地方都有应用。可按是否有交互进行分类无交互的统称为进度条(包括血条经验条等肯定没有滑块)有交互的称为滑动条(可能有滑块)
5.1 进度条
某游戏的进度条UI 通过代码设置进度条UI的简单举例
public class CSlider : MonoBehaviour
{private Slider _slider;private TMP_Text _text1;private float time 0;void Start(){_text1 GameObject.Find(Slider1/Text1).GetComponentTMP_Text();_slider GameObject.Find(Slider1).GetComponentSlider();_slider.minValue 0;_slider.maxValue 100;_slider.wholeNumbers true;setSliderValue(20);}void Update(){time Time.deltaTime;if(3 time){setSliderValue(50);}Debug.Log(time);}public void setSliderValue(float value){_slider.value value;_text1.SetText(value / _slider.maxValue);}
}
运行效果 5.2 滑动条
某游戏滑动条UI 代码示例
public class CSlider : MonoBehaviour
{private Slider _slider;private TMP_Text _text1;private float time 0;void Start(){_text1 GameObject.Find(Slider1/Text1).GetComponentTMP_Text();_slider GameObject.Find(Slider1).GetComponentSlider();_slider.minValue 0;_slider.maxValue 100;_slider.wholeNumbers true;_slider.onValueChanged.AddListener(delegate (float value){Debug.Log(value);_text1.SetText(value / _slider.maxValue);});setSliderValue(20);}public void setSliderValue(float value){_slider.value value;_text1.SetText(value / _slider.maxValue);}
}
运行效果