您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页Unity无限列表插件-EnhancedScroller 简单操作步骤

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

来源:爱go旅游网

1.导包

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

2.创建画布

创建一个canvas画布

3.创建Scroll

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

4.准备脚本

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

Manager脚本

查看脚本

需要继承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脚本

查看脚本

需要继承EnhancedScrollerCellView

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

public Text name;

第二步,写入这个对象

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

Data脚本

查看脚本

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

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,操作更方便哦

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务