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. TypeError: Cannot read property 'getAttribute' of undefined

    今天使用echarts + vue 做 图标,运行时提示vue.runtime.esm.js?2b0e:619 [Vue warn]: Error in mounted hook: "Typ ...

  2. 现代 CSS 解决方案:CSS 原生支持的三角函数

    在 CSS 中,存在许多数学函数,这些函数能够通过简单的计算操作来生成某些属性值,例如 : calc():用于计算任意长度.百分比或数值型数据,并将其作为 CSS 属性值. min() 和 max() ...

  3. WPF入门教程系列二十六——DataGrid使用示例(3)

    WPF入门教程系列目录 WPF入门教程系列二--Application介绍 WPF入门教程系列三--Application介绍(续) WPF入门教程系列四--Dispatcher介绍 WPF入门教程系 ...

  4. Java的jps命令使用详解

    jps命令简介 jps(Java Virtual Machine Process Status Tool)是JDK提供的一个可以列出正在运行的Java虚拟机的进程信息的命令行工具,它可以显示Java虚 ...

  5. 「学习笔记」Garsia-Wachs 算法

    前言 本文的资料和图片均来自 \(\texttt{OI-Wiki}\). 引入 题目描述 在一个操场上摆放着一排 \(N\) 堆石子.现要将石子有次序地合并成一堆.规定每次只能选相邻的 \(2\) 堆 ...

  6. 驱动开发:摘除InlineHook内核钩子

    在笔者上一篇文章<驱动开发:内核层InlineHook挂钩函数>中介绍了通过替换函数头部代码的方式实现Hook挂钩,对于ARK工具来说实现扫描与摘除InlineHook钩子也是最基本的功能 ...

  7. Java 基础复习——StringBuffer 和 StringBuilder

    StringBuffer 和 StringBuilder StringBuffer 类 简介 java.lang.StringBuffer 代表可变的字符序列,可以对字符串内容进行增删 很多方法和 S ...

  8. 「学习笔记」CDQ分治

    CDQ 分治的思想最早由 IOI2008 金牌得主陈丹琦在高中时整理并总结,目前这个思想的拓展十分广泛. 优点:可以将数据结构或者 DP 优化掉一维 缺点:这是离线算法. 引入 让我们来看一个问题 有 ...

  9. Nginx使用Lua脚本连接Redis验证身份并下载文件

    目录 安装Nginx 下载 解压安装包 安装依赖 安装 启动 测试访问 安装LuaJIT 安装ngx_devel_kit 安装lua-nginx-module 在已安装的Nginx中添加Lua模块 L ...

  10. 【SpringBoot】WebSocket在线聊天

    先看一下页面效果,有点简单粗暴!哈哈哈哈哈,别介意. 本文参考:SpringBoot2.0集成WebSocket,实现后台向前端推送信息 新建一个springboot项目 引入相关依赖 <dep ...