Unity3D中Scrollbar控件(滚动条控件)分为水平滚动条(HorizontalScrollbar)和垂直滚动条(VerticalScrollbar)。其用法也是一样的。官方简介网址:file:///Applications/Unity/Unity.app/Contents/Documentation/en/Manual/script-Scrollbar.html
我在实际项目中使用Scrollbar做视频播放的进度条,感觉使用起来还不错。创建一个Scrollbar控件,包括了下图部分。一个Scrollbar父组件,一个Sliding Area滑动区域,一个可以滑动的Handle。
滑动条长相
Interactable | 是否接受输入 |
Transition | 点击Handle过渡方式,有颜色过渡,图片过渡,动画过渡。 |
Navigation | 控制序列的属性 |
Handle Rect | handle控件 |
Direction | 滑动方向 |
Value | 滑动条初始值,范围0-1 |
Size | handle部分的大小,范围0-1 |
Number Of Steps | 通过滚动条允许不同的滚动位置的数字 |
代码实现:
void Start ()
{
scrollbar = GetComponentInChildren<Scrollbar> ();
}
public void SetScrollbarProgress(float timer = 0, int count = 0)
{
if (timer == 0) {
m_Playing = true;
} else {
m_Playing = false;
scrollbar.value = 0;
m_TimerCount = count * timer * 1.7f;
}
}
void LateUpdate()
{
if (m_Playing) {
scrollbar.value += Time.deltaTime / m_TimerCount;
}
}
外部调用SetScrollbarProgress传进两个参数,一个是单步时间,一个是总步数,利用这两项得到总时间,在LateUpdate中让scrollbar的value值增加,每次增加Time.deltaTime / m_TimerCount可以让进度刚好符合需要的时间。
--Rocky