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. Java的运算符和表达式(基础语法学习)

    一.运算符 ​ 在Java中用于程序计算的操作符统称为运算符,运算符分为如下几类 1.算数运算符 运算符 说明 + 加号两边是数值,可以运算,如果一边存在字符串,则当作连接符 a+b - 两个数相加, ...

  2. LeetCode 周赛 348(2023/06/05)数位 DP 模板学会了吗

    本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 加入知识星球提问! 往期回顾:LeetCode 单周赛第 347 场 · 二维空间上的 LIS 最长递增子序列问题 ...

  3. 生物信息培训之WGCNA-权重基因共表达网络分析

    本文分享自微信公众号 - 生信科技爱好者(bioitee).如有侵权,请联系 support@oschina.cn 删除.本文参与"OSC源创计划",欢迎正在阅读的你也加入,一起分 ...

  4. 从 Blast2GO 本地化聊一聊 Linux 下 MySQL 的源码安装

    Blast2GO 是一个基于序列相似性搜索的 GO 注释和功能分析工具,它可以直接统计分析基因功能信息,并可视化 GO 有向非循环图(DAG)上的相关功能特征,分析 BLAST.GO-mapping. ...

  5. ASP.NET Core 6框架揭秘实例演示[37]:重定向的N种实现方式

    在HTTP的语义中,重定向一般指的是服务端通过返回一个状态码为3XX的响应促使客户端像另一个地址再次发起请求,本章将此称为"客户端重定向".既然有客户端重定向,自然就有服务端重定向 ...

  6. 【电脑Tips】Win11自动更新之后开机黑屏

    目录 0.问题描述 1. 释放静电 具体操作 效果 参考博客 2. 运行explorer.exe 具体操作: [问题]:如何打开任务管理器? 效果 参考博客 另外的运行方法 3. 禁用APP Read ...

  7. SSM项目整合思路以及代码

    当前真实的企业开发中,SpringBoot已经统一Java企业应用开发,很少有在使用SSM项目来进行项目开发的. 可是在教学阶段,还是很有必要给学生讲解Java开发中一套很经典的框架,SSM框架.作为 ...

  8. Task Execution and Scheduling In SpringBoot

    开天辟地 Task Execution and Scheduling In the absence of an Executor bean in the context, Spring Boot au ...

  9. 力扣744:寻找比目标字母大的最小字母; LeetCode744:Find Smallest Letter Greater Than Target

    题目见文末 LeetCode link 思路及题解 手写二分 源码: class Solution: def nextGreatestLetter(self, letters: List[str], ...

  10. .NET表达式树

    IQueryable/IQueryable 和表达式树 IQueryable有两个组件 Expression:当前查询的组件的与语言和数据源无关的表示形式,以表达式树的形式表示. Provider:L ...