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 UGUI的Scrollbar(滚动条)组件的介绍及使用的更多相关文章

  1. Unity UGUI Layout自动排版组件用法介绍

    Unity UGUI布局组件 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享 ...

  2. 使用 Vue 开发 scrollbar 滚动条组件

    Vue 应该说是很火的一款前端库了,和 React 一样的高热度,今天就来用它写一个轻量的滚动条组件: 知识储备:要开发滚动条组件,需要知道知识点是如何计算滚动条的大小和位置,还有一个问题是如何监听容 ...

  3. 关于 Unity UGUI 中修改 Mask 组件下 Image 等子节点组件的材质无效的问题

    前几天同事做了一个效果,希望在原本使用了遮罩组件 Mask 的技能图标(让技能图标变成圆形)上在添加一个置灰的功能,但问题来了:因为是动态根据游戏中玩家的条件才动态置灰,以修改 Mask 下子节点 I ...

  4. Unity UGUI —— 无限循环List

    还记得大学毕业刚工作的时候是做flash的开发,那时候看到别人写的各种各样的UI组件就非常佩服,后来自己也慢慢尝试着写,发现其实也就那么回事.UI的开发其实技术的成分相对来说不算多,但是一个好的UI是 ...

  5. Unity UGUI

    超详细的基础教程传送门:(持续更新中) Unity UGUI之Canvas&EventSystem:http://blog.csdn.net/qq992817263/article/detai ...

  6. 第2篇:用as3.0制作一个滚动条组件

    本实例演示了实现一个滚动条基本功能的制作方法,没有添加改变皮肤,修改滚动条视框大小等功能,有兴趣的朋友可根据自己要求自行添加.使用时只需要通过以下一行代码创建滚动条组件: var myScrollba ...

  7. Unity UGUI图文混排源码(三) -- 动态表情

    这里是根据图文混排源码(二)进一步修改的,其他链接也不贴了,就贴一个链接就好了,第一次看这文章的同学可以先去看看其他几篇文章 Unity UGUI图文混排源码(二):http://blog.csdn. ...

  8. Unity UGUI图文混排源码(二)

    Unity UGUI图文混排源码(一):http://blog.csdn.net/qq992817263/article/details/51112304 Unity UGUI图文混排源码(二):ht ...

  9. Unity UGUI实现图文混排

    目前在unity实现图文混排的好像都是通过自定义字体然后在文本获取字符的位置,用图片替换掉图片标签,这样对于支持英文来说,并没有什么影响.然后对于中文来说就是一个相当麻烦的事了,毕竟图文混排多用于游戏 ...

  10. Unity Jobsystem 详解实体组件系统ECS

    原文摘选自Unity Jobsystem 详解实体组件系统ECS 简介 随着ECS的加入,Unity基本上改变了软件开发方面的大部分方法.ECS的加入预示着OOP方法的结束.随着实体组件系统ECS的到 ...

随机推荐

  1. Ubuntu22.04 安装单机版kubernetes

    前言 上期讲到要实现.net 6框架下的EF Core操作数据库基本增删改查,没有及时兑现.没有兑现的原因就是因为安装kubernetes.安装kubernetes的过程是灾难性的,也是十分顺利的.灾 ...

  2. 解读与用户一起“跳动”的开源实时监控工具 HertzBeat

    摘要:开源项目遇上华为云,会擦出怎样的火花? 在本期<开源实时监控工具HertzBeat如何与用户一起"跳动?>的主题直播中,HertzBeat & TanCloud 创 ...

  3. 又爱又恨的 Microsoft Edge!

    早在< 使用码云同步谷歌 Chrome 浏览器书签 · 语雀>中就吐槽过 win7 下安装 Microsoft Edge 一大堆错误代码的问题,一直都折腾不出个所以然.然而公司的 PC 一 ...

  4. Galaxy Release 20.05 发布,新增多项可视化体验

    Galaxy Project(https://galaxyproject.org/)是在云计算背景下诞生的一个生物信息学可视化分析开源项目. 该项目由美国国家科学基金会(NSF).美国国家人类基因组研 ...

  5. PHP代码获取网址参数的数据,请收藏。

    <? echo $_SERVER['HTTP_HOST']."<br>"; #localhost echo $_SERVER['PHP_SELF']." ...

  6. Python 一大坑,配置文件中字典引用问题(拷贝)。

    大坑 +1 python 配置文件中字典引用问题 最近在开发系统时发现一个传奇的BUG, 用户未登录就可进入系统内,而且含有真实身份信息. 此问题困扰多时,反复debug.由于找不到问题原因,复现具有 ...

  7. 如何制作 GitHub 个人主页

    人们在网上首先发现你的地方是哪里?也许你的社交媒体是人们搜索你时首先发现的东西,亦也许是你为自己创建的投资组合网站.然而,如果你使用GitHub来分享你的代码并参与开源项目,那么你的GitHub个人主 ...

  8. 【websocket】小白快速上手flask-socketio

    大家好,我是一个初级的Python开发工程师.本文是结合官方教程和代码案例,简单说下我对flask-socketio的使用理解. 一.websocket简介 websocket 说白一点就是,建立客户 ...

  9. hexo博客git报错

    一.意外的标记异常 1.异常内容: xxx:blog xxxx$ hexo g INFO Start processing FATAL Something's wrong. Maybe you can ...

  10. ASP.NET 6 使用工作单元操作 MongoDB

    大家好,我是Edison. 最近工作中需要用到MongoDB的事务操作,因此参考了一些资料封装了一个小的组件,提供基础的CRUD Repository基类 和 UnitOfWork工作单元模式.今天, ...