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 ...
随机推荐
- 7-2 Broken Pad (20 分)
1.题目描述: The party began, the greasy uncle was playing cards, the fat otaku was eating, and the littl ...
- flutter填坑之旅(flutter页面生命周期篇)
一.初始化时期 1.createState ///构建一个StatefulWidget时,会立即调用该方法(必须重写) @override _WidgetLifecycleState createSt ...
- 【建议收藏】Log4j配置详解
大家在日常开发中必然会使用到日志组件,Log4j是Java方向上比较常用的日志组件,今天给大家分享下Log4j支持的配置项,强烈建议收藏,以便配置时查看 #展示log4j各种配置,私有部分见文件中注释 ...
- 手牵手带你实现mini-vue
1 前言 随着 Vue.React.Angularjs 等框架的诞生,数据驱动视图的理念也深入人心,就 Vue 来说,它拥有着双向数据绑定.虚拟dom.组件化.视图与数据相分离等等造福程序员的优点,那 ...
- 全球唯一云厂商!华为云高分入选2023Gartner Peer Insights™云数据库管理系统“客户之选”
本文分享自华为云社区<华为云高分入选2023Gartner Peer Insights云数据库管理系统"客户之选">,作者:GaussDB 数据库 . 近日,Gartn ...
- 常见的Web安全攻击类型及其应对方法
目录 1. 引言 2. 技术原理及概念 3. 实现步骤与流程 4. 应用示例与代码实现讲解 5. 优化与改进 6. 结论与展望 7. 附录:常见问题与解答 常见的Web安全攻击类型及其应对方法 随着网 ...
- kibana基本操作
kibana基本应用 一.简介 Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的.你可以用kibana搜索.查看存放在Elasticsearch中的数据 ...
- Educational Codeforces Round 151 (Rated for Div. 2) A-D
A 代码 #include <bits/stdc++.h> using namespace std; using ll = long long; bool solve() { int n, ...
- pyinstaller打包程序后提示No module named ‘xxxx‘
解决方法1 1.检查 先在venv环境中安装xxx 报错的这个包 以我的举例 查看settings>project interpreter (存在对应的包) 解决方法2 2.在xxx.spec ...
- 【小小Demo】网页视频通话小🌰子
工程名 video-call 一个简单的 音视频通话 demo,包含:视频.麦克风.屏幕共享操作. 项目环境 jdk1.8 idea maven springboot 2.1.1.RELEASE we ...