Unity(2022.3.41LTS) - UI详细介绍-Scrollbar(滚动条)

news2024/9/21 8:04:18

目录

零.简介

一、基本功能与用途

二、组件介绍

三、使用方法

四、优化和注意事项

五.和滑动条的区别



零.简介

在 Unity 中,滚动条(Scrollbar)是一种用于实现滚动功能的 UI 组件。

一、基本功能与用途

  1. 滚动内容:主要用于在有限的显示区域内展示大量内容时,提供滚动查看的功能。例如,可以用于显示长列表、文本内容、图片集等。
  2. 交互性:用户可以通过拖动滚动条的滑块或者点击滚动条的轨道来快速浏览内容,提供了直观的交互方式。

二、组件介绍

  1. Rect Transform(矩形变换)

    • 和其他 UI 元素一样,滚动条有 Rect Transform 组件,用于控制其在屏幕上的位置、大小和旋转。可以根据 UI 布局的需要调整这些属性。
    • 可以手动输入数值或者在 Scene 视图中直接拖动来调整滚动条的大小和位置。
  2. Scrollbar 组件自身属性

    • Direction(方向):确定滚动条的滚动方向,可以是垂直(Vertical)或水平(Horizontal)。根据要展示的内容的特点和布局选择合适的方向。
    • Value(当前值):表示滚动条的当前位置,取值范围在 0 到 1 之间。0 表示滚动条在初始位置(顶部或左侧),1 表示滚动条在末尾位置(底部或右侧)。可以在代码中读取和修改这个值来控制滚动条的位置。
    • Size(滑块大小):决定了滚动条滑块在整个滚动条长度或高度中的比例。较小的值表示滑块较小,需要更多的滚动操作才能浏览全部内容;较大的值表示滑块较大,滚动操作相对较少。
    • NumberOfSteps(步数):如果设置了这个值,滚动条将以离散的步数进行滚动,而不是连续的滑动。例如,如果设置为 10,滚动条将分为 10 个离散的位置。
  3. Events(事件)

    • On Value Changed(值改变事件):当滚动条的值发生改变时,这个事件会被触发。可以在代码中为这个事件添加处理程序,以便在用户滚动时执行特定的逻辑。
      • 例如,当用户滚动显示长文本时,可以根据滚动条的位置动态调整文本的显示部分。
    • 可以通过代码将特定的方法绑定到这个事件上,实现不同的功能响应。

三、使用方法

  1. 创建滚动条:

    • 在 Unity 中,可以通过 GameObject -> UI -> Scrollbar 菜单创建一个新的滚动条。创建后,可以在 Inspector 窗口中调整其属性。
    • 通常将滚动条与一个可滚动的容器(如 Scroll Rect 组件)一起使用,将需要滚动显示的内容放置在容器中。
  2. 添加事件处理程序:

    • 在脚本中,可以获取滚动条的引用,并为其值改变事件添加处理程序。例如:
     using UnityEngine;
     using UnityEngine.UI;

     public class ScrollbarController : MonoBehaviour
     {
         public Scrollbar myScrollbar;

         void Start()
         {
             // 为滚动条的值改变事件添加处理程序
             myScrollbar.onValueChanged.AddListener(OnScrollbarValueChanged);
         }

         void OnScrollbarValueChanged(float value)
         {
             // 滚动条值改变时执行的逻辑
             Debug.Log("Scrollbar value: " + value);
         }
     }
  • 根据具体的需求,可以在处理程序中实现各种与滚动相关的功能。
  1. 与其他组件配合使用:
    • 通常将滚动条与 Scroll Rect 组件结合使用。Scroll Rect 组件用于包裹可滚动的内容,并与滚动条进行关联。设置 Scroll Rect 的属性,如内容的大小、滚动速度等,以实现良好的滚动效果。

四、优化和注意事项

  1. 性能考虑:

    • 如果要展示的内容非常多,要注意性能优化。避免在每一帧都更新大量的内容,可以根据滚动条的位置只更新可见部分的内容。
    • 对于复杂的内容,考虑使用对象池技术来减少内存占用和提高性能。
  2. 可访问性:

    • 确保滚动条可以通过键盘、游戏手柄或其他输入设备进行操作。可以使用 Unity 的可访问性系统来测试和优化 UI 的可访问性。
    • 为滚动条添加适当的标签和说明文字,以便视力受损的玩家能够理解其功能。
  3. 布局和对齐:

    • 在设计 UI 时,要注意滚动条的布局和对齐,确保它们在不同的屏幕尺寸和分辨率下都能正确显示。可以使用 Unity 的 UI 布局系统来自动调整滚动条的位置和大小。
    • 考虑滚动条与其他 UI 元素之间的间距和比例关系,使整个界面看起来协调美观。
  4. 测试和调试:

    • 在游戏开发过程中,要充分测试滚动条的功能和交互效果。确保滚动条在不同的场景和条件下都能正常工作,并且反馈及时、准确。
    • 使用 Unity 的调试工具来检查滚动条的状态和事件触发情况,以便及时发现和解决问题。

总之,Unity 中的滚动条是一个重要的 UI 组件,通过合理地设置其属性、添加事件处理程序和与其他组件配合使用,可以实现高效的滚动功能,为用户提供良好的浏览体验。

五.和滑动条的区别

功能用途

  1. 滚动条
    • 主要用于在有限的显示区域内展示大量内容时,实现对内容的滚动查看。例如,用于显示长列表、长篇文本、大量图片等。
    • 通常与可滚动的容器(如 Scroll Rect 组件)配合使用,通过拖动滚动条来控制容器内内容的显示位置。
  2. 滑动条
    • 用于让用户在一个特定的数值范围内选择一个值。比如调整音量大小、游戏难度、角色属性值等。
    • 主要是进行数值选择,而不是用于内容的滚动展示。

外观和操作方式

  1. 滚动条
    • 通常由一个轨道和一个较小的滑块组成。用户可以通过拖动滑块在轨道上移动来实现滚动操作,也可以点击轨道的空白区域进行快速滚动。
    • 滚动条的长度通常与可滚动内容的比例相关,内容越多,滚动条相对越短。
  2. 滑动条
    • 一般也有轨道和滑块,但外观设计通常更注重数值选择的直观性。滑块可能会更大一些,以便用户更准确地选择数值。
    • 用户通过拖动滑块在轨道上移动来选择数值,操作更加注重精确性。

属性设置

  1. 滚动条
    • 有 “Direction” 属性来设置滚动方向是垂直还是水平。
    • “Value” 属性表示滚动条的当前位置,对应着可滚动内容的显示位置。
    • “Size” 属性决定滑块在轨道中的大小比例,反映了可显示内容与总内容的比例关系。
  2. 滑动条
    • 有 “Whole Numbers” 属性决定是否只接受整数数值。
    • “Min Value” 和 “Max Value” 属性设置数值范围。
    • “Value” 属性表示当前选择的数值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2102051.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【重学 MySQL】五、MySQL 的卸载

【重学 MySQL】五、MySQL 的卸载 停止MySQL服务卸载MySQL程序删除残余文件清理注册表删除环境变量配置重启电脑 MySQL的卸载过程需要仔细操作,以确保彻底卸载并清理所有相关文件和配置。 停止MySQL服务 打开任务管理器:右键点击任务栏空白处&#xff0…

模组级存储与嵌入式存储的千差万别

雷龙在多年销售CS创世 SD NAND(也称:迷你型eMMC,小尺寸/小容量eMMC,贴片式T卡,贴片式TF卡,贴片式SD卡等)的过程中,经常有被用户问到:SD NAND 与 TF卡 到底有哪些区别呢&a…

动态路由和路由导航守卫及其案例分析

为什么需要动态路由? 动态路由其实用的不多,在实际开发中,如果遇到权限分配问题,比如对于一个公司人员的后台管理系统,那对不同成员的权限肯定不同,对于人事部,他们有权限进入成员表对人员的流…

【网络安全】XSS漏洞挖掘Tip

未经许可,不得转载。 某网页存在错误信息,包含在div标签内: 检查此页面的源代码以获取id属性: 将id属性作为 GET 参数进行测试,例如在 URL 中添加error_messagehelloworld: 可以看到,参数被接受…

流媒体技术革新,EasyCVR视频汇聚平台赋能视频监控全面升级

随着科技的飞速发展,流媒体技术和视频监控正经历着前所未有的变革与融合。本文将从流媒体技术的新兴趋势出发,探讨其与视频监控领域的深度结合,以及这一融合所带来的创新与发展。 一、流媒体技术的新兴趋势 1、5G网络的广泛应用 5G网络以其…

AI驱动测试管理工具会有哪些发展前景呢?

在软件测试领域,人工智能(AI)的出现犹如一场技术革命,改变了传统的测试管理方式。随着AI技术的迅速发展,它将如何进一步提升测试管理的效率与准确性?未来的AI驱动测试管理工具又会带来哪些令人期待的创新呢…

unittest | 使用unittest模块来测试logging日志模块功能

我们在这篇文章实现了在项目工程中编写一个logging模块,但是我们如何确定我们编写的模块功能的是否正常? 你可能想到将全部代码写完后运行测试,但这是一个非常不好的习惯。❌ 最好的方式,是每写出来一个功能或者方法就对它进行测试&#x…

MySQL 存储引擎有哪些?InnoDB 和 MyISAM 存储引擎有什么区别?

MySQL 存储引擎有哪些? MySQL 存储引擎主要负责查询的执行和数据的存储,存储引擎主要有 InnoDB,MyISAM,Memery InnoDB 是 MySQL 默认的存储引擎,支持事务和行级锁,以及外键的约束,具有事务提交…

揭秘推荐算法:深度学习如何读懂你的购物心思

时间:2024年09月03日 作者:小蒋聊技术 邮箱:wei_wei10163.com 微信:wei_wei10 音频:https://xima.tv/1_L8HH40?_sonic0 希望大家帮个忙!如果大家有工作机会,希望帮小蒋内推一下&#xff0c…

帅地:秋招入职腾讯,后裸辞创业年入百万,一位全职程序员博主的第六年

这是《开发者说》的第17期,这次我们采访的是知名的程序员博主:帅地。 帅地从大学开始接触公众号,在大学毕业时就沉淀了10w垂直粉丝,月入近10w。在秋招阶段,帅地靠扎实的算法基础和技术功底顺利入职腾讯。“还没折腾够”…

【分布式注册中心】NACOS_2.3.0部署与实战

部署 一 准备 1 依赖:MYSQL 2 创建数据库 CREATE database if NOT EXISTS nacos default character set utf8mb4 collate utf8mb4_unicode_ci; 3 导入初始化SQL https://raw.githubusercontent.com/alibaba/nacos/develop/distribution/conf/mysql-schema.sql…

了解Spring Data JPA

1、Spring Data JPA 1.1、概述 Spring Data JPA 是 Spring 基于JPA 规范的基础上封装的⼀套 JPA 应⽤框架,可使开发者⽤极简的代码即可实现对数据库的访问和操作。它提供了包括增删改查等在内的常⽤功能!学习并使⽤Spring Data JPA 可以极⼤提⾼开发效率…

cefsharp128_cef128_chromium6613_x64_h264版本抢险体验

一、本博测试版本cef128及兼容性测试 1.1 版本 128.0.6613.x (全网保持最新更新测试体验) 感谢您:关注我,关注栏目,总有您想要的资源,推荐好友有优惠 1.2 兼容性测试,支持h264 1.3 视频播放测试 版本兼容 cef128.xx.xx <

哈希 详解

目录 1. “哈希”是什么&#xff1f; 2. 哈希冲突 3. 哈希函数 3.1 设计原则 3.2 常见哈希函数 4. 解决哈希冲突的两种常见方法 4.1 闭散列 4.2 开散列 4.3 散列表的扩容问题 5. 哈希表的实现 并 封装模拟实现unordered系列容器 6. 哈希的应用 6.1 位图 -- bitset …

vue3+ts项目新建后找不到模块vue或类型{}上不存在属性

新建的项目&#xff0c;不影响功能&#xff0c;但是红色的波浪线很不好看。 在tsconfig.json文件中增加一行代码&#xff1a;让ts识别vue文件 "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue&quo…

特异性心肌细胞靶向肽(PCM);WLSEAGPVVTVRALRGTGSW;CAS:771479-86-8

【特异性心肌细胞靶向肽(PCM) 简介】 特异性心肌细胞靶向肽&#xff08;PCM&#xff09;是一种设计用于识别和结合心肌细胞特有的受体或分子标记的多肽序列。PCM可以通过其氨基酸序列的特定配置和表面特性实现对心肌细胞的选择性靶向&#xff0c;从而在心脏病治疗中递送药物、作…

Idea_服务器自动化部署_傻瓜式教程

使用Alibaba Cloud Toolkit 在 IntelliJ IDEA 中一键部署项目到服务器 1. 安装 Alibaba Cloud Toolkit 插件 确保 IntelliJ IDEA 版本为 2018.3 或以上。打开 IntelliJ IDEA&#xff0c;进入 File -> Settings -> Plugins&#xff0c;搜索并安装 Alibaba Cloud Toolkit…

【重学 MySQL】一、数据库概述

【重学 MySQL】一、数据库概述 为什么要使用数据库数据库与数据库管理系统数据库&#xff08;Database&#xff09;数据库管理系统&#xff08;DBMS&#xff09;数据库与数据库管理系统的关系数据库是数据存储的容器数据库管理系统是数据库的管理者相互依存的关系数据库系统的组…

论斜率优化dp

论斜率优化dp 1问题2暴力算法-线性dp3斜率优化线性dp4后记 1问题 如下图 看到这题&#xff0c;题面很复杂 其实可以转化为如下问题 有 n n n个任务&#xff0c;排成一个有序序列&#xff0c;我们要解决这些任务 总费用是每一个任务的完成时间乘以费用系数求和 每个任务之前…

RAG 进阶:零成本 chat_with_readthedocs

Readthedocs 是知名的文档托管平台&#xff0c;通常用于免费存放 GitHub 和 GitLab 的项目文档。当项目文档较多时&#xff0c;简单的搜索难以满足读者需求&#xff0c;此外在 AI 2.0 时代&#xff0c;“主动寻找答案”这类用户体验已经逐渐落后。 本文将介绍如何基于 Huixian…