Unity UGUI的Scrollbar(滚动条)组件的介绍及应用
一、什么是Scrollbar组件?
Scrollbar组件是Unity中UGUI零碎提供的一种UI组件,次要用于在UI界面中提供滚动条性能,使用户能够通过滚动条来查看超出屏幕范畴的内容。
二、Scrollbar组件是如何工作的?
Scrollbar组件的工作原理次要是通过扭转滚动条的地位来扭转关联的内容的显示地位。当用户拖动滚动条时,Scrollbar组件会依据滚动条的地位计算出一个值(范畴在0到1之间),而后将这个值传递给关联的内容,由内容依据这个值来扭转本人的显示地位。
三、Scrollbar组件的罕用属性
Scrollbar组件的罕用属性次要有以下几个:
Direction
:滚动条的方向,能够是从左到右、从右到左、从下到上、从上到下。Value
:滚动条的以后值,范畴在0到1之间。Size
:滚动条滑块的大小,范畴在0到1之间,值越大,滑块越大。NumberOfSteps
:滚动条的步进值,如果设置为0,则滚动条能够平滑滚动;如果设置为大于0的值,则滚动条会依照步进值来滚动。
四、Scrollbar组件的罕用函数
Scrollbar组件的罕用函数次要有以下几个:
OnValueChanged
:当滚动条的值扭转时触发的事件。Rebuild
:从新构建滚动条。LayoutComplete
:当滚动条的布局实现时触发的事件。GraphicUpdateComplete
:当滚动条的图形更新实现时触发的事件。
五、Scrollbar组件的应用示例
上面将通过5个示例来介绍如何应用Scrollbar组件。
示例1:创立一个简略的Scrollbar
// 创立一个ScrollbarScrollbar scrollbar = new GameObject("Scrollbar").AddComponent<Scrollbar>();// 设置滚动条的方向scrollbar.direction = Scrollbar.Direction.LeftToRight;// 设置滚动条的值scrollbar.value = 0.5f;// 设置滚动条滑块的大小scrollbar.size = 0.1f;
示例2:监听Scrollbar的值扭转事件
// 创立一个ScrollbarScrollbar scrollbar = new GameObject("Scrollbar").AddComponent<Scrollbar>();// 增加值扭转事件的监听scrollbar.onValueChanged.AddListener((value) => { Debug.Log("Scrollbar value changed: " + value);});
示例3:设置Scrollbar的步进值
// 创立一个ScrollbarScrollbar scrollbar = new GameObject("Scrollbar").AddComponent<Scrollbar>();// 设置滚动条的步进值scrollbar.numberOfSteps = 10;
示例4:从新构建Scrollbar
// 创立一个ScrollbarScrollbar scrollbar = new GameObject("Scrollbar").AddComponent<Scrollbar>();// 从新构建滚动条scrollbar.Rebuild(CanvasUpdate.Prelayout);
示例5:监听Scrollbar的布局实现事件和图形更新实现事件
// 创立一个ScrollbarScrollbar scrollbar = new GameObject("Scrollbar").AddComponent<Scrollbar>();// 增加布局实现事件的监听scrollbar.onValueChanged.AddListener(() => { Debug.Log("Scrollbar layout complete.");});// 增加图形更新实现事件的监听scrollbar.onValueChanged.AddListener(() => { Debug.Log("Scrollbar graphic update complete.");});
六、注意事项
在应用Scrollbar组件时,须要留神以下几点:
- Scrollbar组件的值范畴是0到1,不要设置超出这个范畴的值。
- 如果要使Scrollbar能够平滑滚动,须要将步进值设置为0。
- 在监听Scrollbar的值扭转事件时,须要留神不要在事件处理函数中再次批改Scrollbar的值,否则可能会导致有限循环。
七、参考资料
- Unity官网文档:Scrollbar
- Unity官网教程:UGUI Scrollbar