如何通过UGUI实现滚动视图的无限制滚动功能?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1427个文字,预计阅读时间需要6分钟。
实现了基于UGUI的无限滚动效果。主要思路是只做了一半(向下无限滚动)。网上查阅了很多教程,感觉还是按照自己的思路来写可能更好。以下是一个简单的实现:
csharpusing UnityEngine;using UnityEngine.UI;
public class InfiniteScroll : MonoBehaviour{ public ScrollRect scrollRect; public GameObject content; public GameObject itemPrefab; public int itemCount=100;
void Start() { // 初始化内容 for (int i=0; i 抽空做了一个UGUI的无限滚动的效果。只做了一半(向下无限滚动)。网上也看了很多教程,感觉还是按照自己的思路来写可能比较好。搭建如下: content节点不添加任何组件。布局组件默认是会重新排版子节点的,所以如果子节点的位置变化,会重新排版,不能达到效果。Size Fitter组件也不加,自己写代码调整Size大小(不调整大小,无法滑动)。 最主要的实现过程就是用Queue来搬运Cell。在向下滚动的过程中(鼠标上滑),顶部滑出View Port的Cell被搬运到底部续上。
本文共计1427个文字,预计阅读时间需要6分钟。
实现了基于UGUI的无限滚动效果。主要思路是只做了一半(向下无限滚动)。网上查阅了很多教程,感觉还是按照自己的思路来写可能更好。以下是一个简单的实现:
csharpusing UnityEngine;using UnityEngine.UI;
public class InfiniteScroll : MonoBehaviour{ public ScrollRect scrollRect; public GameObject content; public GameObject itemPrefab; public int itemCount=100;
void Start() { // 初始化内容 for (int i=0; i 抽空做了一个UGUI的无限滚动的效果。只做了一半(向下无限滚动)。网上也看了很多教程,感觉还是按照自己的思路来写可能比较好。搭建如下: content节点不添加任何组件。布局组件默认是会重新排版子节点的,所以如果子节点的位置变化,会重新排版,不能达到效果。Size Fitter组件也不加,自己写代码调整Size大小(不调整大小,无法滑动)。 最主要的实现过程就是用Queue来搬运Cell。在向下滚动的过程中(鼠标上滑),顶部滑出View Port的Cell被搬运到底部续上。

