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
// 创立一个 Scrollbar
Scrollbar scrollbar = new GameObject("Scrollbar").AddComponent<Scrollbar>();
// 设置滚动条的方向
scrollbar.direction = Scrollbar.Direction.LeftToRight;
// 设置滚动条的值
scrollbar.value = 0.5f;
// 设置滚动条滑块的大小
scrollbar.size = 0.1f;
示例 2:监听 Scrollbar 的值扭转事件
// 创立一个 Scrollbar
Scrollbar scrollbar = new GameObject("Scrollbar").AddComponent<Scrollbar>();
// 增加值扭转事件的监听
scrollbar.onValueChanged.AddListener((value) => {Debug.Log("Scrollbar value changed:" + value);
});
示例 3:设置 Scrollbar 的步进值
// 创立一个 Scrollbar
Scrollbar scrollbar = new GameObject("Scrollbar").AddComponent<Scrollbar>();
// 设置滚动条的步进值
scrollbar.numberOfSteps = 10;
示例 4:从新构建 Scrollbar
// 创立一个 Scrollbar
Scrollbar scrollbar = new GameObject("Scrollbar").AddComponent<Scrollbar>();
// 从新构建滚动条
scrollbar.Rebuild(CanvasUpdate.Prelayout);
示例 5:监听 Scrollbar 的布局实现事件和图形更新实现事件
// 创立一个 Scrollbar
Scrollbar 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