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学习之一 OS 文件夹的操作和文件操作

    # OS模块 :查看一个文件夹下所有文件,这个文件夹有文件夹,不能用walk# -- coding: UTF-8 --import osimport sys#C:\Users\Administrato ...

  2. 远程挂载 NFS 共享目录引发死机问题

    集群的存储空间有限,把一些历史的归档数据放在了公司的另外一台老旧存储服务器上,并使用 NFS 把它挂载到了 log 节点.周末的时候机房空调故障,旧存储服务器挂掉了!周一上班,在集群登陆节点使用df ...

  3. 确保使用正确的CSI提交HW问题

    最近有用户一体机有问题,需要技术支持,首先找到我这边,其实就是一个简单的坏盘类问题,换盘即可. 在保期间,要求客户提交一个SR给后台,但是客户提交后,就一直被要求提供HW的CSI号: xxx: Can ...

  4. 效率神器!神级ChatGPT浏览器插件分享

    大家好,我是卷了又没卷,薛定谔的卷的AI算法工程师「陈城南」~ 担任某大厂的算法工程师,带来最新的前沿AI知识和工具,欢迎大家交流~,后续我还会分享更多 AI 有趣工具和实用玩法,包括AI相关技术.C ...

  5. 「Python实用秘技14」快速优化Python导包顺序

    本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第14 ...

  6. Paimon读取流程

    查询模式 先来看看官网关于Paimon查询模式的说明 可以看到查询模式围绕snapshot展开, 而snapshot分了两种一种是Last compact snapshot和 last snapsho ...

  7. Prometheus-2:blackbox_exporter黑盒监控

    黑盒监控blackbox_exporter 前边介绍有很多exporter可以直接将metrics暴露给Prometheus进行监控,这些称为"白盒监控",那些exporter无法 ...

  8. webpack配置文件的分离

    配置文件的分离 目的就是让开发环境, 生产环境,测试环境的配置分隔开 步骤一: 在项目根目录下创建一个 build 文件夹专门用来存放配置文件,再创建三个js文件, base.config.js 文件 ...

  9. 【笔记】- 【美团1万台 Hadoop 集群 YARN 的调优之路】

    原文:美团1万台 Hadoop 集群 YARN 的调优之路 背景 架构 YARN架构 资源抽象 YARN调度架构 资源抽象 调度流程 作业的组织方式 核心调度流程 指标 业务指标:有效调度 系统性能指 ...

  10. msvc++工程之vs版本升级及工程目录规范

    为什么要升级msvc++工程版本 对msvc++工程进行vs版本升级,一方面是可以使用较新的C++标准及对64位更好的支持. 首先你需要对msvc++ project文件有一定的了解,主要是vcxpr ...