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

目录

零.简介

一、基本功能与用途

二、组件介绍

三、使用方法

四、优化和注意事项

五.和滑动条的区别



零.简介

在 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.rhkb.cn/news/415119.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NeRF原理学习

一个2020年的工作我现在才来学习并总结它的原理,颇有种“时过境迁”的感觉。这篇总结是基于NeRF原文 NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 阅读理解后写的,作用是以后如果记不太清了可以回忆。 目的&应用 先说…

Java项目:128 基于Spring Boot的装饰工程管理系统

作者主页:源码空间codegym 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本系统包含管理员、员工和客户角色 管理员权限操作的功能包括管理合同信息,管理合同报价,管理立项项目,管…

[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-24 TPG图像测试数据发生器设计

软件版本:VIVADO2021.1 操作系统:WIN10 64bit 硬件平台:适用 XILINX A7/K7/Z7/ZU/KU 系列 FPGA 实验平台:米联客-MLK-H3-CZ08-7100开发板 板卡获取平台:https://milianke.tmall.com/ 登录“米联客”FPGA社区 http…

【python因果推断库3】使用 CausalPy 进行贝叶斯geolift 分析

目录 导入数据 丹麦的销售额是否有地理提升(GeoLift)? 结果 本笔记本介绍如何使用 CausalPy 的贝叶斯{术语}合成控制功能来评估“地理提升”(GeoLift)。我们的假设情景如下: 你是一家在欧洲运营的公司的…

图文解析保姆级教程: IDEA里面创建SpringBoot工程、SpringBoot项目的运行和测试、实现浏览器返回字符串

文章目录 一、创建SpringBoot工程(需要联网)二、 定义请求处理类三、运行测试 此教程摘选自我的笔记:黑马JavaWeb开发笔记13——Springboot入门(创建、运行&测试项目)、Http协议(请求&响应协议&…

Json数据解析报错 -TAB

表现: n8n 解析服务器的数据 报错 json 解析错误 原理: tab键 在代码中为 string tab \t解决办法:tab键替换4个空格 string tab "\t" tab.replaceAll("\t", " ")问题: tab 键 和 空格 在普…

卷积公式的几何学理解

1、Required Knowledge 1.1、概率密度函数 用于描述连续型随机变量在不同取值上的概率密度,记作 f ( x ) f(x) f(x)。 如随机变量 X X X的分布为正态分布,则其概率密度函数为: f ( x ) 1 σ 2 π e − ( x − μ ) 2 2 σ 2 f(x)\frac{1}…

记忆化搜索【上】

509. 斐波那契数 题目链接:斐波那契数 递归(暴搜) 斐波那契数列,最传统的解法,采用递归: class Solution { public:int fib(int n){return dfs(n);}int dfs(int n){if(n 0 || n 1)return n;return d…

大数据-114 Flink DataStreamAPI 程序输入源 自定义输入源 Rich并行源 RichParallelSourceFunction

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

linux 高级IO

IO等(要进行io是要有条件的,要有数据或者有空间)拷贝。高效体现在等待的时间所占比重越低越高效。 阻塞IO:数据没有就绪,read不返回。在内核将数据准备好之前, 系统调用会一直等待。所有的套接字, 默认都是阻塞方式。…

nginx容器映射配置文件后,启动一直报错提示:failed (13: Permission denied)的排查

问题现象: 使用harbor 的install.sh 创建docker-compose之后,出现nginx容器一直重启。 查看日志发现是:配置文件无权限。报错信息如下: Sep 2 16:43:13 172.28.0.1 nginx[1344]: 2024/09/02 08:43:13 [emerg] 1#0: open() “/e…

百度地图绘制电子围栏(包括移动端绘制操作)以及检测坐标是否在电子围栏内

由于本人在PC端仅使用了多边形绘制,但矩形跟多边形用法基本一样,圆形并未使用,如不符合读者需求也可以参考一下。 绘制后得到的数据可能不同,但绘制方法仅仅是传递的参数不同。 关于给坐标数组在地图绘制图形的效果在移动端部分包…

深度学习系列74:语音中的mel谱

1 mel谱介绍 一个人说一句话,其 waveform 可以很不一样,但是 spectrogram 基本上会相似,甚至有人可以通过 spectrogram 来判断说话的内容。语谱图的横坐标是时间,纵坐标是频率,坐标点值为语音数据能量。由于是采用二维…

# 利刃出鞘_Tomcat 核心原理解析(十一)-- WebSocket -- 1

利刃出鞘_Tomcat 核心原理解析(十一)-- Tomcat 附加功能 WebSocket – 1 一、Tomcat专题 - WebSocket - 介绍 1、Tomcat 附加功能:websocket 介绍 1)websocket :是 HTML5 新增的协议,它的目的是在浏览器…

动态规划法-资源分配问题

动态规划法 - 资源分配问题 问题描述 把4个份额的资源分配给3个工程,给定利润表如下表所示,写出资源的最优分配方案的求解过程。 4份资源分配给3个工程的利润表 步骤一:求各个阶段不同分配份额时的最大利润及分配份额 目标 我们的目标是…

53 mysql pid 文件的创建

前言 接上一篇文章 mysql 启动过程中常见的相关报错信息 在 mysql 中文我们在 “service mysql start”, “service mysql stop” 经常会碰到 mysql.pid 相关的错误信息 比如 “The server quit without updating PID file” 我们这里来看一下 mysql 中 mysql.pid 文件的…

微积分复习笔记 Calculus Volume 1 - 1.3Trigonometric Functions

1.3 Trigonometric Functions - Calculus Volume 1 | OpenStax

自己开发完整项目一、登录功能-05(动态权限控制)

一、上节回顾 在上一节中,我们介绍了如何通过数据库查询用户的权限,并对方法级别的接口使用注解的方式进行权限控制,之后通过用户携带的tocken进行解析权限,判断是否可以访问。 具体步骤: 1.在查询用户信息的时候将用户…

map和set的封装

目录 一、红黑树的改造 1.1节点的定义 二、红黑树的迭代器 2.1用节点封装迭代器 2.2迭代器的实现 2.3map和set的迭代器 三、insert的返回值 3.1insert返回值的用处 3.2operator[ ]的实现 四、key不能修改的问题 封装map和set一般分为六步: 封装map和set …

MFC生成dll的区别

主要分三种: A. 动态链接库(dll) B.具有导出项的(dll)动态链接库 C.MFC动态链接库 对比项目:可以根据需要选择哪种dll方便 添加自定义导出功能Demo 1. 添加导出实现接口: A. 导出需要具有:__declspec(dllexport) B. 按照C语言…