原文:http://www.tasharen.com/forum/index.php?topic=6715.0
NGUI讨论群:333417608
概述
UISlider组件可以用来创建一个简单的slider和进度条。继承了UIProgressBar的所有功能,之后增加了可选的滑块。
最简单的方式,UISlider用来实现功能的唯一需求就是设置一个用来修改的Foreground widget。这个widget的初始尺寸就是slider处理100%时候的尺寸(UISlider.value == 1.0)。widget缩放的方向取决于Derection的设置。
创建一个简单的slider,只需要先创建一个宽、高为200和40的sliced sprite。这个就是slider的背景——slider的Value为0时候看来的样子。
之后增加一个子sliced sprite。这个sprite就是Value为1的时候看起来的样子。你可以把这个sprite封装到父节点里面,这样看起来更合理。
做完以上内容之后,挂一个UISlider给背景sprite,之后Foreground属性引用到第二个sprite。之后你点击Player之后调整slider的value值,你就会看到相应的变化。
如果要让slider可以交互,那增加一个Box Collider给它。如果想要让它可以被高亮,那么增加一个UIButton给它,之后把target属性指向他们中的一个。
可以通过替换Background为UIWidget来使背景不可见。
指定一个非0的值给Steps属性来确定slider的增长步长。比如Step设置为5,那么slider的值就是0%, 25%, 50%, 75% and 100%。
slider还可以增加一个滑块sprite。滑块的位置会一直在slider上面。可以在它上面增加高亮效果或者一个label,这个label会在slider值变化的时候跟着滑块移动。
OnValueChange属性可以指定功能函数,当slider的value变化的时候调用。最简单的就是增加一个UILabel,之后把这个label的game object拖拽到Notify属性里面,之后在下拉框里面选择UILabel.SetCurrentPercent。
小贴士
用UIStretch放在前景上来让前景的大小跟着背景的变化而变化。
类文档
http://tasharen.com/ngui/docs/class_u_i_slider.html