Unity UGUI的ScrollRect(滚动视图)组件的介绍及使用
Unity UGUI的ScrollRect(滚动视图)组件的介绍及使用
1. 什么是ScrollRect组件?
ScrollRect(滚动视图)是Unity UGUI中的一个常用组件,用于在UI界面中创建可滚动的区域。通过ScrollRect组件,可以实现在有限的空间内显示大量的内容,并且可以通过滑动手势来浏览内容。
2. ScrollRect组件的工作原理
ScrollRect组件通过将内容放置在一个可滚动的矩形区域内,然后通过拖动或滑动手势来改变内容的显示位置。ScrollRect组件包含一个Viewport(视口)和一个Content(内容)两个子对象,Viewport用于限制Content的显示范围,而Content则包含了实际的内容。
3. ScrollRect组件的常用属性
- Content:用于放置实际的内容的RectTransform对象。
- Horizontal:是否允许水平方向的滚动。
- Vertical:是否允许垂直方向的滚动。
- Movement Type:滚动的类型,可选的类型有:Unrestricted(不受限制)、Elastic(弹性)、Clamped(限制)。
- Inertia:是否启用惯性滚动。
- Deceleration Rate:惯性滚动的减速率。
- Scroll Sensitivity:滚动的灵敏度。
4. ScrollRect组件的常用函数
- ScrollTo:滚动到指定位置。
- StopMovement:停止滚动。
- OnBeginDrag:开始拖拽时调用的函数。
- OnDrag:拖拽过程中调用的函数。
- OnEndDrag:结束拖拽时调用的函数。
5. 示例代码
示例1:基本的滚动视图
using UnityEngine;
using UnityEngine.UI;
public class ScrollRectExample : MonoBehaviour
{
public ScrollRect scrollRect;
void Start()
{
// 设置Content的大小
RectTransform content = scrollRect.content;
content.sizeDelta = new Vector2(0, 1000);
// 设置滚动视图的滚动范围
scrollRect.verticalNormalizedPosition = 1;
}
}
操作步骤:
- 创建一个空的GameObject,并添加ScrollRect组件。
- 在Hierarchy面板中选中ScrollRect对象,将Content对象拖拽到ScrollRect的Content属性中。
- 将示例代码添加到ScrollRectExample脚本中,并将ScrollRect对象拖拽到scrollRect属性中。
- 运行游戏,可以看到滚动视图中的内容可以通过滑动手势进行滚动。
示例2:限制滚动范围
using UnityEngine;
using UnityEngine.UI;
public class ScrollRectExample : MonoBehaviour
{
public ScrollRect scrollRect;
void Start()
{
// 设置Content的大小
RectTransform content = scrollRect.content;
content.sizeDelta = new Vector2(0, 1000);
// 设置滚动视图的滚动范围
scrollRect.verticalNormalizedPosition = 1;
scrollRect.movementType = ScrollRect.MovementType.Clamped;
}
}
操作步骤:
- 创建一个空的GameObject,并添加ScrollRect组件。
- 在Hierarchy面板中选中ScrollRect对象,将Content对象拖拽到ScrollRect的Content属性中。
- 将示例代码添加到ScrollRectExample脚本中,并将ScrollRect对象拖拽到scrollRect属性中。
- 运行游戏,可以看到滚动视图中的内容在滚动到边界时会受到限制。
示例3:惯性滚动
using UnityEngine;
using UnityEngine.UI;
public class ScrollRectExample : MonoBehaviour
{
public ScrollRect scrollRect;
void Start()
{
// 设置Content的大小
RectTransform content = scrollRect.content;
content.sizeDelta = new Vector2(0, 1000);
// 设置滚动视图的滚动范围
scrollRect.verticalNormalizedPosition = 1;
scrollRect.inertia = true;
scrollRect.decelerationRate = 0.5f;
}
}
操作步骤:
- 创建一个空的GameObject,并添加ScrollRect组件。
- 在Hierarchy面板中选中ScrollRect对象,将Content对象拖拽到ScrollRect的Content属性中。
- 将示例代码添加到ScrollRectExample脚本中,并将ScrollRect对象拖拽到scrollRect属性中。
- 运行游戏,可以看到滚动视图中的内容在滑动结束后会有惯性滚动的效果。
示例4:滚动到指定位置
using UnityEngine;
using UnityEngine.UI;
public class ScrollRectExample : MonoBehaviour
{
public ScrollRect scrollRect;
void Start()
{
// 设置Content的大小
RectTransform content = scrollRect.content;
content.sizeDelta = new Vector2(0, 1000);
// 设置滚动视图的滚动范围
scrollRect.verticalNormalizedPosition = 1;
// 滚动到指定位置
scrollRect.ScrollTo(new Vector2(0, 500), 0.5f);
}
}
操作步骤:
- 创建一个空的GameObject,并添加ScrollRect组件。
- 在Hierarchy面板中选中ScrollRect对象,将Content对象拖拽到ScrollRect的Content属性中。
- 将示例代码添加到ScrollRectExample脚本中,并将ScrollRect对象拖拽到scrollRect属性中。
- 运行游戏,可以看到滚动视图会自动滚动到指定位置。
示例5:停止滚动
using UnityEngine;
using UnityEngine.UI;
public class ScrollRectExample : MonoBehaviour
{
public ScrollRect scrollRect;
void Start()
{
// 设置Content的大小
RectTransform content = scrollRect.content;
content.sizeDelta = new Vector2(0, 1000);
// 设置滚动视图的滚动范围
scrollRect.verticalNormalizedPosition = 1;
// 停止滚动
scrollRect.StopMovement();
}
}
操作步骤:
- 创建一个空的GameObject,并添加ScrollRect组件。
- 在Hierarchy面板中选中ScrollRect对象,将Content对象拖拽到ScrollRect的Content属性中。
- 将示例代码添加到ScrollRectExample脚本中,并将ScrollRect对象拖拽到scrollRect属性中。
- 运行游戏,可以看到滚动视图会停止滚动。
6. 注意事项
- ScrollRect组件需要配合其他UI组件(如Mask)一起使用,以限制内容的显示范围。
- 在使用ScrollRect组件时,需要注意Content的大小和滚动范围的设置,以确保内容能够正确地显示和滚动。
7. 参考资料
Unity UGUI的ScrollRect(滚动视图)组件的介绍及使用的更多相关文章
- UGUI 滚动视图
滚动视图是常用的UI控件之一,它是由多个基本控件组合而成.如图 ==================================================================== ...
- 基于Unity·UGUI实现的RecycleList循环列表UI容器
在UI功能开发实践中,列表UI容器是我们经常使用一种UI容器组件.这种组件就根据输入的数据集合生成对应数据项目.从显示的方向来说,一般就分为水平排布和垂直排布的列表容器两种.列表容器为了在有限的界面空 ...
- 微信小程序开发实战(1):使用滚动视图
本文主要介绍了滚动视图组件(scroll-view)的各种常用功能,例如,垂直和水平滚动.滚动事件等,并通过例子代码来演示这些功能的使用方法. 1. 垂直滚动视图 scroll-view是容器组件 ...
- [Unity]Unity开发NGUI代码实现ScrollView(滚动视图)
Unity开发NGUI代码实现ScrollView(滚动视图) 下载NGUI包 导入NGUI3.9.1版本package 链接: http://pan.baidu.com/s/1mgksPBU 密码: ...
- Unity UGUI Layout自动排版组件用法介绍
Unity UGUI布局组件 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享 ...
- [Unity UGUI]ScrollRect效果大全
UGUI各种优化效果 本文所实现的UGUI效果需求如下: - 支持缩放滑动效果 - 支持动态缩放循环加载 - 支持大数据固定Item复用加载 - 支持不用Mask遮罩无限循环加载 - 支持Object ...
- ReactNative: 使用滚动视图ScrollView组件
一.简介 当页面内容的非常多时,即使换行后仍然无法充分显示,此时最好的解决办法就是让页面可以滚动显示.在React-Native中,提供了可供滚动的视图组件ScrollView组件.它的属性和方法以及 ...
- MFC小程序003------MFC使用WebBrowser组件,在对话框中创建滚动视图,动态创建一个静态文本控件并设置鼠标单击的消息响应
MFC小程序截图: 一.在MFC中简单使用WebBrowser的ActiveX插件的方法: 见博文: http://blog.csdn.net/supermanking/article/detail ...
- Anroid组件滚动视图(ScollView)简单使用
ScollView应用展示 在xml文件中添加滚动视图 activity_main.xml <?xml version="1.0" encoding="utf-8& ...
- Unity UGUI
超详细的基础教程传送门:(持续更新中) Unity UGUI之Canvas&EventSystem:http://blog.csdn.net/qq992817263/article/detai ...
随机推荐
- mac部署flutter时执行brew update无反应
找来找去还是镜像的问题 1.替换brew 镜像 git remote set-url origin https://mirrors.ustc.edu.cn/ew.git 2.替换homebrew-co ...
- 在 RedHat 使用 gdc-client 下载 TCGA 数据
今天,只聊一下 RedHat/CentOS 下 gdc-client 安装的那些事. gdc-client,官网地址:https://gdc.cancer.gov/access-data/gdc-da ...
- 如何判断Keil MDK ARM中已经破解?如何判断Keil MDK ARM中已经安装了相应的器件库?如何判断CubeMX的器件库已经安装成功?
如何判断CubeMX的器件库已经安装成功?请对照下图 如何判断Keil MDK ARM中已经安装了相应的器件库?请看下图 如何判断CubeMX的器件库已经安装成功?请对照下图
- [ARM汇编]计算机原理与数制基础—1.1.1计算机的基本原理
计算机是一种能够根据指令集自动.高速处理数据的现代化设备.它的基本原理可以总结为:输入.存储.处理和输出数据.接下来,我们将详细介绍这些基本原理. 输入 计算机通过输入设备(如键盘.鼠标等)接收外部数 ...
- KeyChrone-K8使用体验
盛名之下,其实难副.我是这应该是我对K8的初上手体验.抛开Mac的使用者,我想其他人应该很难对这款键盘爱得起来.一直以来对手头的Filco的有线比较介意,想换个无线键盘.因为平时调程序比较多,所以F功 ...
- React后台管理系统 04 配置路径别名、全局样式设置、模块化scss
ts中对于@符号指定的路径不支持,同时vite中也是不支持的,所以我们需要在vite.config.ts中进行指定配置,path是node中自带的一个模块这里爆红的原因是没有进行声明: 我们使用命令对 ...
- 我在使用Winform7.0开发海康相机应用的时候系统悄无声息的退出
一.简介 1.说明一下 最近,我在开发一个玻璃幕墙检测的项目,这个项目需要使用到海康的相机系统.业务是这样的,相机按着指定的坐标,扫描玻璃幕墙的每块玻璃,通过算法查看是否有损坏的,如果有就发出报警信息 ...
- VisionPro学习笔记(2)——图像转换工具ImageCovertTool
众所周知,VisionPro是一款功能强大的机器视觉软件,用于开发和部署机器视觉应用程序.其中ImageConvertTool是其中一个重要的工具,用于图像转换和处理.本文将介绍如何使用ImageCo ...
- .NET周刊【7月第2期 2023-07-09】
由于这周比较忙,只给出了标题和链接,没有具体的简介. 另外根据粉丝朋友的反馈,".NET周报" 更名为 ".NET周刊",希望大家喜欢 : ) 国内文章 Ava ...
- Centos 7安装dotnet 3.1
# 注册 Microsoft 密钥和源 sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft- ...