Unity无限列表插件-EnhancedScroller 简单操作步骤

1.导包

将EnhancedScroller v2.15.6.unitypackage导入到场景中

2.创建画布

创建一个canvas画布

3.创建Scroll

在画布下创建一个UI->Scroll View,将组建内Scrollbar Horizontal/Vertical两个滑动条删除,删完就是这样

4.准备脚本

需要准备三个脚本,Manager、CellView、Data,

介绍

  1. Manager脚本负责将预制体(CellView)和数据(Data)通过什么方式去结合呈现

  2. CellView脚本负责把数据写入预制体对应的位置(例如预制体的子物体有一个Text,该脚本负责把数据写入这个Text.text上)

  3. Data脚本负责定义数据类型

Manager脚本

查看脚本RankingManager.cs

需要继承MonoBehaviour(可以将脚本挂在到场景物体上)与实现IEnhancedScrollerDelegate(需要实现3个方法)

第一步,创建成员

    // 数据列表(Data就是上面三脚本之一)
    private SmallList<Data> _data;

    // 列表控制器(插件的核心控制器)
    public EnhancedScroller scroller;

    // 列表元素预制体
    public EnhancedScrollerCellView cellViewPrefab;

第二步,初始化脚本

    void Start()
    {
        // 控制器绑定(核心控制器需要一个委托脚本,也就是Manager脚本)
        scroller.Delegate = this;

        // 装载数据(自定义方法,用于为列表_data添加数据并渲染)
        LoadData();
    }

第三步,添加数据

 	/// <summary>
    /// 给list添加具体的数据
    /// </summary>
    private void LoadData()
    {
        // new 一个具体的list
        _data = new SmallList<Data>();
        // 装填数据
        for (var i = 0; i < 30; i++)
        {
            _data.Add(new Data()
            {
                
            });
            // 测试打印看是否成功
            Debug.Log(_data[i].ranking);
        }

        // 刷新数据
        scroller.ReloadData();
    }

第四步,实现接口

	/// <summary>
    /// 一个重写,告诉滚动器应该分配空间的单元格条数。这应该是_data数据的长度
    /// </summary>
    /// <param name="scroller"></param>
    /// <returns></returns>
    public int GetNumberOfCells(EnhancedScroller scroller)
    {
        return _data.Count;
    }

    /// <summary>
    /// 这将告诉滚动器给定单元格的大小。
    /// 单元格条数可以是任何大小,不需要是统一的。
    ///     对于垂直滚动条,单元格的大小将是高度。
    ///     对于水平滚动条,单元格的大小将是宽度。
    /// </summary>
    /// <param name="scroller"></param>
    /// <param name="dataIndex"></param>
    /// <returns></returns>
    public float GetCellViewSize(EnhancedScroller scroller, int dataIndex)
    {
        // 这个是根据数据索引值的余数来的,要不是长30,要不长100
        // return (dataIndex % 2 == 0 ? 30f : 100f);
        return 20f;
    }

    /// <summary>
    /// 获取新的数据(上划时候,滚动器会将最上面的CellView移动到最下面,此时需要这个方法为CellView提供数据)
    /// </summary>
    /// <param name="scroller"></param>
    /// <param name="dataIndex"></param>
    /// <param name="cellIndex"></param>
    /// <returns></returns>
    public EnhancedScrollerCellView GetCellView(EnhancedScroller scroller, int dataIndex, int cellIndex)
    {
        // 谁出了超出那个框了,获取谁的预制体
        ScoreCellView cellView = scroller.GetCellView(cellViewPrefab) as ScoreCellView;

        // 名字切换一下
        cellView.name = "Cell " + dataIndex.ToString();

        // 写入一个新的数据
        cellView.SetData(_data[dataIndex]);

        // 把装好的cellView返回
        return cellView;
    }

CellView脚本

查看脚本 ScoreCellView.cs

需要继承EnhancedScrollerCellView

第一步,准备需要绑定的对象

public Text name;

第二步,写入这个对象

public void SetData(Data data){
    name.text = data.name;
}

Data脚本

查看脚本 ScoreData.cs

无继承,只需要准备对应的数据类型即可

public string name;

5.绑定脚本

第一步,将EnhancedScroller脚本(插件主脚本)挂在到ScrollView上(也就是和ScrollRect组件一个对象上)

这个脚本直接 add Component 搜

第二步,将CellView挂在到需要批量显示的预制体上,并绑定对应的对象

第三步,将挂载好的预制体放到资源文件夹中

第四步,将Manager脚本挂载到一个空物体上(这个空物体决不能销毁),并且将主控制器(EnhancedScroller脚本对象)拖入到Scroller中,将预制体(ScoreClip/CellView)拖入到Cell View Prefab中

至此,步骤基本完毕,点击运行游戏运行

三脚本代码

链接: https://pan.baidu.com/s/1lqPwmaCy7KKUzFL9y3_XTA?pwd=mb5n 提取码: mb5n 复制这段内容后打开百度网盘手机App,操作更方便哦

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: Unity EnhancedScroller 是一款优秀的 Unity 滚动列表组件,主要被应用于构建复杂的列表和表格。 EnhancedScroller 可以让用户轻松地实现高度优化的滚动列表。其底层使用的是 Unity 的 UI 系统,并支持全部 UI 组件。 EnhancedScroller 的主要特点包括动态行高、回收视图、快速滑动等。用户可以根据自己的需求轻松定制滚动列表。其强大的性能优化使得 EnhancedScroller 在大规模数据渲染时表现出色。 在 EnhancedScroller 的实现过程中,使用了虚拟化技术,只在可见区域内渲染列表项,不仅减少了绘制时间,也减少了内存占用和 GPU 负担。这样就可以在较低的设备上流畅地渲染大量列表项。 EnhancedScroller 的接口设计非常友好,开发者可以快速了解并掌握其使用方法。Unity 社区中也有许多示例和教程,帮助开发者更好地实现其功能。总之,Unity EnhancedScroller 是开发者在构建高效滚动列表时的首选组件之一,它的强大性能优化、易用性和接口设计都是其优势所在。 ### 回答2: Unity EnhancedScroller是一个Unity插件,它可以轻松地实现高性能可滚动列表。它是为了处理大量数据而设计的,而且其性能优秀。 使用EnhancedScroller,可以创建可动态填充的列表,它可以自动地将只需要的数据项加载到内存中,从而保证了性能的高效。 另外,EnhancedScroller还具有各种布局选项,使得使用者可以按照自己的需求对列表进行排列。从简单的线性列表到复杂的网格布局都可以轻松实现。 EnhancedScroller还支持自定义的单元格布局,因此可以根据应用程序的需求自由地设计单元块。可以方便得实现复杂的交互,例如滑动菜单,瀑布流布局等。 综上所述,Unity EnhancedScroller是一个强大的工具,可以有效地管理大量数据并创建高性能的滚动列表。无论是UI取景器还是游戏风格的界面,该插件都是一个非常实用的选择。 ### 回答3: Unity EnhancedScrollerUnity引擎中的一种插件,它提供了一种高效的滚动列表实现方式。与常规的滚动列表不同,EnhancedScroller使用视图重用技术以提高性能并降低内存使用量。EnhancedScroller允许开发人员为每个可见行指定不同的高度,从而消除了空白间隔造成的浪费。 此外,EnhancedScroller还提供了基于数据的填充模板,使开发人员能够在运行时快速增加或减少表格中的行数。EnhancedScroller支持水平和垂直滚动,并允许开发人员添加自定义行为和动画效果。EnhancedScroller还提供了可定制的用户界面组件,如滑块和分页指示器,以增强用户体验。 总而言之,Unity EnhancedScroller是一种高度优化的滚动列表实现方式,可以帮助开发人员轻松创建快速响应且易于管理的列表和网格视图。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值