首页 > 其他分享 >Unity UGUI的Scrollbar(滚动条)组件的介绍及使用

Unity UGUI的Scrollbar(滚动条)组件的介绍及使用

时间:2023-09-03 19:44:52浏览次数:41  
标签:示例 滚动条 Unity Scrollbar scrollbar 组件

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组件时,需要注意以下几点:

  1. Scrollbar组件的值范围是0到1,不要设置超出这个范围的值。
  2. 如果要使Scrollbar可以平滑滚动,需要将步进值设置为0。
  3. 在监听Scrollbar的值改变事件时,需要注意不要在事件处理函数中再次修改Scrollbar的值,否则可能会导致无限循环。

七、参考资料

标签:示例,滚动条,Unity,Scrollbar,scrollbar,组件
From: https://www.cnblogs.com/alianblank/p/17675423.html

相关文章

  • Unity业务抽象套路二、EIP Everythings Is Prefab
     为什一些控制、数据管理的逻辑也要做成Prefab?好处:可以在Inspector中调整参数(而不是散落在各个配置文件中)调试时能够在Inspector确认具体数值自然地支持一系列方法:携程、定时、Update、FixedUpDate注意:有人习惯将配置写成ScriptableObject然后统一以此来管理。个人建......
  • Webkit 实现页面滚动条美化
    当页面或者某个容器布局内容超出过后,就会有滚动条,但默认的有点丑,经常需要自己来美化一下,这里做个笔记吧./*美化全局的滚动条*/::-webkit-scrollbar{width:4px;height:6px;}::-webkit-scrollbar-corner{display:block;}::-webkit-scrollbar-thumb{......
  • Unity3D下如何采集camera场景数据并推送RTMP服务?
    Unity3D使用场景Unity3D是非常流行的游戏开发引擎,可以创建各种类型的3D和2D游戏或其他互动应用程序。常见使用场景如下:游戏开发:Unity3D是一个广泛用于游戏开发的环境,适用于创建各种类型的游戏,包括动作游戏、角色扮演游戏、策略游戏、冒险游戏等。虚拟现实:Unity3D也常用于虚拟现实(VR......
  • dbeaver Community :自定义内部 dashboard 模版
    dbeaver的官方文档并没说明怎么去自定义内部的dashboard模版。但是,他是开源的,有源代码可查的。而且,他是java的,即使没有源代码,你也可以简单的去反编译class来读取源代码!#==========================================================以下是我的一点研究。#=================......
  • el-table不出现滚动条
    修改样式的时候,发现没出现自己想要的效果,用div重新布局以后,发现效果是出现了,但el-table滚动条不见了。解决:<divstyle="padding:2px;height:600px"><el-tablev-loading="loading":data="list"highlight-current-rowsty......
  • Unity Android Studio 混合开发实践(Unity工程导入Android项目进行开发)
    前言最近接到一个任务是将一个unity开发的游戏接入到现有的Android项目里,然后在现有的App实现点击一个按钮打开游戏,并且在游戏内提供一个可以退出到App的按钮。整体需求是很明确的,难点主要有两个:我们公司是做应用开发的,没有任何游戏开发的技能储备。在游戏中需要和Native进行......
  • Unity UnityWebRequest.Post传参Json数据
    UnityWebRequest.PostUnity中的HTTP通信主要依赖的是Unity自带的UnityWebRequest类,之前的WWW类已被弃用Post请求,向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。对应的调用方法:UnityWebR......
  • Dell UnityVSA 5.3 - 敏捷的软件定义存储
    DellUnityVSA5.3-敏捷的软件定义存储适用于SAN和NAS的软件定义的敏捷虚拟存储设备请访问原文链接:https://sysin.org/blog/dell-unityvsa-5/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgDellUnityVSA适用于SAN和NAS的软件定义的敏捷虚拟存储设备VM......
  • Unity RenderTexture 当作为 Camera.targetTexture 时,在某些安卓手机或模拟器无法显示
    今天打包的时候遇到一个坑,就是用RenderTexture的时候,在某些手机上会显示黑屏,一查发现这是某些安卓设备才会出现的BUG(奇怪的是那台测试机是鸿蒙系统,懂的都懂)解决方法也很简单,就是不能用RenderTexture资源,而改成动态代码创建即可解决这个BUG同时解决了另一个RenderTexture的BUG,就......
  • Unity3d 保存相机拍摄图像
    ///<summary>///生成相机照片并保存///</summary>///<paramname="PhotographyCamera">相机</param>///<paramname="imageMateData">图像宽高</param>publicvoidCreateCameraCaptureAndSaveLocal(CameraPhotographyCa......