哥也色!

曼谷 人妖 【Unity 实用器具篇】 | UGUI 轮回列表 SuperScrollView,快速上手使用

哥也色

你的位置:哥也色 > 11ABCD >
曼谷 人妖 【Unity 实用器具篇】 | UGUI 轮回列表 SuperScrollView,快速上手使用
发布日期:2025-07-03 23:15    点击次数:111

曼谷 人妖 【Unity 实用器具篇】 | UGUI 轮回列表 SuperScrollView,快速上手使用

曼谷 人妖

图片

绪言 本文先容一个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