曼谷 人妖
图片
绪言 本文先容一个UGUI对于ScrollRect的一个拓展插件:SuperScrollView。作念项宗旨经过中,ScrollRect组件 的使用频率照旧挺高的,尤其是在作念近似背包这种需要遍及子对象的时辰。平方情况下,使用ScrollRect作念滑动功能时,如若子对象相称多,在生成时未免会卡顿。是以就需要一个轮回列表,近似对象池的功能,只会加载表示页面中所需要的,而不是一次性一起加载完成。 【Unity 实用器具篇】 | UGUI 轮回列表 SuperScrollView,快速上手使用 一、UGUI ScrollRect拓展插件:SuperScrollView 1.1 先容UGUI SuperScrollView基于UGUI ScrollRect提供了易于定制的ScrollView。它是一组C#剧本,不错匡助您创建所需的ScrollView。这瑕瑜常苍劲的和高度优化的性能。
在SuperScrollView中主要有三个组件,并已矣了三种不相同的轮回列表神气:
LoopListView2:适用于 横向/纵向 浅近陈列的列表视图,近似 Vertical Layout Group / Horizontal Layout Group的使用。LoopGridView:适用于网格陈列,大小调换的列表视图,近似 GridLayout Group 的使用。LoopStaggeredGridView:适用于网格陈列,但大小不调换的列表视图,不错已矣列表中错列排序等迥殊需求。底下就来先容一下这三种轮回列表的使用神气,快速上手及使用。
1.2 成果展示图片
图片
1.3 使用说明及下载Unity Asset Store下载地址:https://assetstore.unity.com/packages/tools/gui/ugui-super-scrollview-86572 CSDN下载地址:SuperScrollView 白嫖地址:VX搜我名字,回话【素材资源】
使用插件的神气有多种:
将下载好的SuperScrollView资源文献径直放到咱们的技俩Assets文献夹下即可。不错通过Unity中的 Window -> Package Manager 中导入,采用添加下载好的插件,大约使用URL径直添加皆不错。 二、SuperScrollView 快速上手使用三种功能的组件在使用时永诀不大,只不外各个组件有我方特有的几个参数不错采用,包括添加子对象,启动生成子对象的数目,缔造间距、偏移量和陈列类型等。
图片
功能相比浅近,可确立的参数与Unity老例的布局组件近似,使用起来很容易上手。在演示之前先作念一个不使用轮回列表时的鄙俚示例,在ScrollView下加载1000个对象。
浅近搭建一个场景,在ScrollView中添加一个item行为生成的对象。
图片
Content上头需要挂载对应的布局组件,这里演示挂载一个垂直布局组件。
图片
Item对象上头挂载一个测试剧本TestItem.cs
using UnityEngine; using UnityEngine.UI; public class TestItem : MonoBehaviour { public Image ImgIcon; public Text TxtName; public void SetData(int _index) { TxtName.text = $"测试:<color=#F55F55>{_index}</color>"; } }
测试生成1000个对象剧本如下:
using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class LoopViewDemo : MonoBehaviour { public Button button; public Transform testContent; public GameObject testItem; private void Awake() { button.onClick.AddListener(() => { StartTest(); }); } private void StartTest() { for (int i = 0; i < 1000; i++) { GameObject go = GameObject.Instantiate(testItem, testContent); var itemInfo = go.GetComponent<TestItem>(); itemInfo.SetData(i); } } }
图片
此时运行游戏,点击脱手按钮,不错看到1000个对象一起被生成。
图片
在游戏中的进展会出现明显的卡顿感奋,对象越多越是如斯。况且后头的对象并不会表示到玩家不错操作的视图中,只好束缚往下滑动时才会表示,一次性生成白白阔绰了性能。
底下看下SuperScrollView的使门径及成果。
聚色网 2.1 LoopListView2与前边鄙俚示例相同平方创建一个ScrollView以及对应的item,接着在ScrollView上头挂载LoopListView2剧本,并在LoopListView2上头添加对应的item对象(需要轮回生成的游戏对象)。
图片
item对象需要挂载LoopListViewItem2剧本,如有对应逻辑剧本也可挂载。
图片
这里有两个点需要冷静 1.不需要在Content上头挂载对应的布局组件了,不然会出现宏大的成果。 2.ScrollView组件如若需要保留滑动条,则不成采用Auto Hide And Expand Viewport。
图片
使用LoopListView2的代码如下:曼谷 人妖
using SuperScrollView; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class LoopViewDemo : MonoBehaviour { public Button button; public LoopListView2 LoopListView; private void Awake() { button.onClick.AddListener(() => { StartTest(); }); //启动化轮回列表 LoopListView.InitListView(0, refreshListInfo); } private void StartTest() { //刷新轮回列表 LoopListView.SetListItemCount(1000, true); } private LoopListViewItem2 refreshListInfo(LoopListView2 loopListView, int index) { if (index < 0