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;
}
}

操作步骤:

  1. 创建一个空的GameObject,并添加ScrollRect组件。
  2. 在Hierarchy面板中选中ScrollRect对象,将Content对象拖拽到ScrollRect的Content属性中。
  3. 将示例代码添加到ScrollRectExample脚本中,并将ScrollRect对象拖拽到scrollRect属性中。
  4. 运行游戏,可以看到滚动视图中的内容可以通过滑动手势进行滚动。

示例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;
}
}

操作步骤:

  1. 创建一个空的GameObject,并添加ScrollRect组件。
  2. 在Hierarchy面板中选中ScrollRect对象,将Content对象拖拽到ScrollRect的Content属性中。
  3. 将示例代码添加到ScrollRectExample脚本中,并将ScrollRect对象拖拽到scrollRect属性中。
  4. 运行游戏,可以看到滚动视图中的内容在滚动到边界时会受到限制。

示例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;
}
}

操作步骤:

  1. 创建一个空的GameObject,并添加ScrollRect组件。
  2. 在Hierarchy面板中选中ScrollRect对象,将Content对象拖拽到ScrollRect的Content属性中。
  3. 将示例代码添加到ScrollRectExample脚本中,并将ScrollRect对象拖拽到scrollRect属性中。
  4. 运行游戏,可以看到滚动视图中的内容在滑动结束后会有惯性滚动的效果。

示例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);
}
}

操作步骤:

  1. 创建一个空的GameObject,并添加ScrollRect组件。
  2. 在Hierarchy面板中选中ScrollRect对象,将Content对象拖拽到ScrollRect的Content属性中。
  3. 将示例代码添加到ScrollRectExample脚本中,并将ScrollRect对象拖拽到scrollRect属性中。
  4. 运行游戏,可以看到滚动视图会自动滚动到指定位置。

示例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();
}
}

操作步骤:

  1. 创建一个空的GameObject,并添加ScrollRect组件。
  2. 在Hierarchy面板中选中ScrollRect对象,将Content对象拖拽到ScrollRect的Content属性中。
  3. 将示例代码添加到ScrollRectExample脚本中,并将ScrollRect对象拖拽到scrollRect属性中。
  4. 运行游戏,可以看到滚动视图会停止滚动。

6. 注意事项

  • ScrollRect组件需要配合其他UI组件(如Mask)一起使用,以限制内容的显示范围。
  • 在使用ScrollRect组件时,需要注意Content的大小和滚动范围的设置,以确保内容能够正确地显示和滚动。

7. 参考资料

Unity UGUI的ScrollRect(滚动视图)组件的介绍及使用的更多相关文章

  1. UGUI 滚动视图

    滚动视图是常用的UI控件之一,它是由多个基本控件组合而成.如图 ==================================================================== ...

  2. 基于Unity·UGUI实现的RecycleList循环列表UI容器

    在UI功能开发实践中,列表UI容器是我们经常使用一种UI容器组件.这种组件就根据输入的数据集合生成对应数据项目.从显示的方向来说,一般就分为水平排布和垂直排布的列表容器两种.列表容器为了在有限的界面空 ...

  3. 微信小程序开发实战(1):使用滚动视图

    本文主要介绍了滚动视图组件(scroll-view)的各种常用功能,例如,垂直和水平滚动.滚动事件等,并通过例子代码来演示这些功能的使用方法.   1. 垂直滚动视图 scroll-view是容器组件 ...

  4. [Unity]Unity开发NGUI代码实现ScrollView(滚动视图)

    Unity开发NGUI代码实现ScrollView(滚动视图) 下载NGUI包 导入NGUI3.9.1版本package 链接: http://pan.baidu.com/s/1mgksPBU 密码: ...

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

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

  6. [Unity UGUI]ScrollRect效果大全

    UGUI各种优化效果 本文所实现的UGUI效果需求如下: - 支持缩放滑动效果 - 支持动态缩放循环加载 - 支持大数据固定Item复用加载 - 支持不用Mask遮罩无限循环加载 - 支持Object ...

  7. ReactNative: 使用滚动视图ScrollView组件

    一.简介 当页面内容的非常多时,即使换行后仍然无法充分显示,此时最好的解决办法就是让页面可以滚动显示.在React-Native中,提供了可供滚动的视图组件ScrollView组件.它的属性和方法以及 ...

  8. MFC小程序003------MFC使用WebBrowser组件,在对话框中创建滚动视图,动态创建一个静态文本控件并设置鼠标单击的消息响应

    MFC小程序截图: 一.在MFC中简单使用WebBrowser的ActiveX插件的方法: 见博文:  http://blog.csdn.net/supermanking/article/detail ...

  9. Anroid组件滚动视图(ScollView)简单使用

    ScollView应用展示 在xml文件中添加滚动视图 activity_main.xml <?xml version="1.0" encoding="utf-8& ...

  10. Unity UGUI

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

随机推荐

  1. 深入理解 python 虚拟机:花里胡哨的魔术方法

    深入理解 python 虚拟机:花里胡哨的魔术方法 在本篇文章当中主要给大家介绍在 cpython 当中一些比较花里胡哨的魔术方法,以帮助我们自己实现比较花哨的功能,当然这其中也包含一些也非常实用的魔 ...

  2. 代码随想录算法训练营Day18 二叉树

    代码随想录算法训练营 代码随想录算法训练营Day18 二叉树| 513.找树左下角的值 112. 路径总和 113.路径总和ii 106.从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构 ...

  3. 神经网络初步(Neural Network)——思想 具体实例以及代码实现

    在前面我们详细的讨论过softmax损失函数以及SVM损失函数,以及应用了支持向量机进行图片分类的任务,不妨先复习一下支持向量机相关的思想内核:支持向量机想要寻求一组映射关系f(x)=wx+b,先将每 ...

  4. How to fix the problem that Raspberry Pi cannot use the root user for SSH login All In One

    How to fix the problem that Raspberry Pi cannot use the root user for SSH login All In One 如何修复树莓派无法 ...

  5. CHS、LAB地址

    CHS地址 CHS地址指的是柱面(Cylinder).磁头(Head).扇区(Sector)三个参数组成的地址,是用来表示磁盘上每个扇区位置的一种方式. 物理扇区号 = ((柱面号×磁头数) + 磁头 ...

  6. .Net7矢量化的性能优化

    前言 矢量化是性能优化的重要技术,也是寄托硬件层面的优化技术.本篇来看下. 概括 一:矢量化支持的问题: 矢量化的System.Runtime.Intrinsics.X86.Sse2.MoveMask ...

  7. 前端vue基于原生check增强单选多选插件

    前端vue基于原生check增强单选多选插件, 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12979 效果图如下:     ...

  8. .NET周报 【7月第1期 2023-07-02】

    国内文章 C# 实现 Linux 视频聊天.远程桌面(源码,支持信创国产化环境,银河麒麟,统信UOS) https://www.cnblogs.com/shawshank/p/17420469.htm ...

  9. python台历代码--涉及知识点为Excel表格合并等操作

    from openpyxl.styles import Alignment, PatternFill, Fontfrom openpyxl.utils import get_column_letter ...

  10. python笔记:第四章使用字典

    1.1 概述 说白了就是键值对的映射关系 不会丢失数据本身关联的结构,但不关注数据的顺序 是一种可变类型 格式:dic = {键:值, 键:值} 键的类型:字典的键可以是任何不可变的类型,如浮点数,字 ...