Unity3D -- (UGUI)Scrollbar

来源:互联网 发布:阿森纳数据 编辑:程序博客网 时间:2024/05/22 13:47

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 Recthandle控件Direction滑动方向Value滑动条初始值,范围0-1Sizehandle部分的大小,范围0-1Number 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





0 0