unityscrollview生成大量_unity scrollview 优化 高效重复利用 避免大量初始化时间过长...

本文分享了一个优化过的Unity ScrollView实现,它能动态增删列表并保持性能,通过重用子物体避免大量初始化导致的时间过长。提供了一个Demo链接,并详细介绍了代码实现,包括列表数量控制、子物体属性初始化和位置调整等关键功能。
摘要由CSDN通过智能技术生成

最近项目看到一个大佬写的比较好的动态增删的scrollview  列表,唯一有些缺陷就是无法居中, 我把他整理下分享给大家

demo: https://download.csdn.net/download/weixin_41843959/10603338

7decfb45c19f339e71b356d8c6d40967.png

d1dd2ca8aec8551ba5e8239b078ee16d.png列表个数始终保持再自己设置的个数,滑动时通过把显示外看不到的子物体重新设置位置,初始化属性

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.UI;

public class UIListTest : MonoBehaviour {

private UIHorizontal mList2;

int[] intlist = { 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 20010, 20011, 20012, 20013, 20014, 20015, 20016, 20017, 20018, 20019 };

void Start ()

{

mList2 = transform.Find("Horizontal").GetComponent();

//mList.Init(50, 50, 2, 3);

mList2.InitData();

mList2.InitList(intlist.Length, (item, index) =>

{//子物体属性赋值

item.name = index.ToString();

item.Find("Text").GetComponent().text = intlist[index].ToString();

});

}

}

横向列表控制类

属性设置:

7494eb3ac095781cf2b1a649cc72c8ec.pngaadaa946fa40216b3708516ff704437f.png固定节点

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.UI;

/// /// 横向列表

///

public class UIHorizontal : MonoBehaviour

{

// 外部基础参数设置

public int itemWidth; //单元格宽

public int itemHeight; //单元格高

public int columnCount; // 显示列数

public int rowCount; // 显示行数

public int offsetX = 0; //列间隔

public int offsetY = 0; //行间隔

//基础设置

private ScrollRect scrollRect;

private RectTransform itemParent;

private GameObject itemObj; //克隆体

private Vector2 m_maskSize; //遮罩大小

//根据参数来计算

private int m

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值