商城类网站能做响应式设计吗,民宿网站建设方案,梅州建站网络科技有限公司,wordpress怎么换域名效果展示#xff1a; 下载链接#xff1a;https://gf.bilibili.com/item/detail/1111843026
概述#xff1a;
LoopListView2 是一个与 UGUI ScrollRect 相同的游戏对象的组件。它可以帮助 UGUI ScrollRect 以高效率和节省内存的方式支持任意数量的项目。
对于具有10,000个…效果展示 下载链接https://gf.bilibili.com/item/detail/1111843026
概述
LoopListView2 是一个与 UGUI ScrollRect 相同的游戏对象的组件。它可以帮助 UGUI ScrollRect 以高效率和节省内存的方式支持任意数量的项目。
对于具有10,000个项目的ScrollRect LoopListView2并不真正创建10,000个项目而是根据视窗的大小创建几个项目。
例如当ScrollRect向上移动时LoopListView2组件将进行检查最上面的项目的位置一旦最上面的项目离开视口则LoopListView2组件将回收最上面的项同时检查最下方的项目位置一旦最下方的项目接近视口底部LoopListView2组件将调用onGetItemByIndex处理程序来创建一个新项和然后将新创建的项放置在最下面的项下因此新创建的项变为新的最下面的项目。
每个项目可以使用不同的预制件可以有不同的高度/宽度。
在该文件夹中有几个示例可以帮助您了解LoopListView2组件与路径Assets - SuperScrollView - Demo -场景。菜单场景是入口。 下图是toptobutton安排的滚动矩形的样子 在上图中scrollrect有10000个项目但实际上只有7个项目真正创建。 Inspector设置
在Inspector中为了确保LoopListView2组件工作良好有几个需要设置的参数 ItemPrefabList这是要克隆的现有项。
每个项目可以使用不同的预制件每个预制件可以有不同的默认填充滚动块中每个项目之间的间距)。而且每个预制件都可以有不同的默认x本地位置用于垂直scrollrect或默认y本地位置用于水平scrollrect这里称为X/Y pooffset。每个预制件都有一个回收InitCreateCount是开始时在池中创建的计数。
事实上在运行时每个项目可以有不同的填充和X/Y posofset你可以改变一个item的padding和X/YPosOffset在你的onGetItemByIndex回调中。你可以得到/设置它们LoopListViewItem2。填充和LoopListViewItem2。StartPosOffset。
重要提示所有itemPrefab的localScale必须为1,1,1。
SupportScrollbar如果选中LoopListView2组件将支持滚动条。 ItemSnapEnable: 如果选中LoopListView2组件将尝试将项捕捉到中的配置位置ViewPort。 ItemSnapPivot是项目的快速枢轴点的位置定义为矩形本身大小的一小部分。0,0对应左下角而1,1对应右上角。 ViewPortSnapPivot是ScrollRect ViewPort的snap枢轴点的位置定义为矩形本身大小的分数。0,0对应左下角而1,1对应右上角。 ArrangeType滚动方向有四种类型 (1) TopToBottom这种类型用于垂直滚动item0,item1…itemN是在scrollrect视口中从上到下依次定位就像下面: (2) BottomToTop这种类型用于垂直滚动条item0,item1…itemN是在scrollrect视口中从下到上依次定位就像下面: (3) LeftToRight这种类型用于水平滚动item0,item1…itemN是在scrollrect视口中从左到右依次定位。 (4) righttolleft该类型用于水平滚动item0,item1…itemN是在scrollrect视口中从右到左依次定位。 重要的公开方法 public void InitListView(int itemTotalCount,
System. FuncLoopListView2, int, LoopListViewItem2 onGetItemByIndex,
LoopListViewInitParam initParam nu1l) InitListView方法用于初始化LoopListView2组件。有3个参数 itemTotalCount滚动视图中的项目总数。如果该参数设置为-1则表示有无限项不支持滚动条ItemIndex可以从-MaxInt到MaxInt。如果设置sssa value 0则ItemIndex只能来自0到itemTotalCount -1。 onGetItemByIndex当一个项目进入scrollrect视图时这个Action将被调用使用项目索引作为参数以允许您创建项目并更新其内容。LoopListViewItem2是onGetItemByIndex的返回值,每个创建的项目都有一个自动附加的LoopListViewItem2组件 LoopListViewItem2组件是一个非常简单的例子 mItemIndex属性表示列表中项目的索引如上所述如果itemTotalCount设置为-1则mItemIndex可以从-MaxInt到MaxInt。如果将itemTotalCount设置为0则mItemIndex只能在0到itemTotalCount之间取值1。
mItemId属性表示该项的id。此属性在创建项时设置从池中获取并且在项目回收回池之前将不再更改。下面的代码是onGetItemByIndex的示例
LoopListViewItem2 OnGetItemByIndex(LoopListView2 listView, int index)
{
if (index 0 || index DataSourceMgr.Get.TotalItemCount)
{
return null;
}
//get the data to showing
ItemData itemData DataSourceMgr.Get.GetItemDataByIndex(index);
if(itemData null)
{
return null;
}
/*get a new item. Every item can use a different prefab, the parameter of the
NewListViewItem is
the prefab’name.
And all the prefabs should be listed in ItemPrefabList in LoopListView2 Inspector
Setting */
LoopListViewItem2 item listView.NewListViewItem(ItemPrefab1);
ListItem2 itemScript item.GetComponentListItem2();
// IsInitHandlerCalled is false means this item is new created but not fetched from pool.
if (item.IsInitHandlerCalled false)
{
item.IsInitHandlerCalled true;
itemScript.Init();// here to init the item, such as add button click event listener.
}
//update the item’s content for showing, such as image,text.
itemScript.SetItemData(itemData,index);
return item;
} 此方法用于获取新项目新项目是命名的预制件的克隆itemPrefabName。此方法通常在onGetItemByIndex中使用。 此方法可用于在运行时设置滚动视图的项目总数。如果此参数设置为-1则表示有无限个项目并且不支持滚动条ItemIndex取值范围从-MaxInt到MaxInt。如果将该参数设置为0则ItemIndex只能在0到itemTotalCount -1之间取值。
如果resetPos设置为false则在此方法完成后滚动块的内容位置不会改变。 通过itemIndex获取可见项。如果项不可见则此方法返回null。 所有可见项存储在ListLoopListViewItem2中命名为mItemList这个方法是通过可见项列表中的索引获取可见项。参数索引为0 ~mItemList.Count。 获取所有可见项目的总数。 通过itemIndex更新项。如果itemIndex-th项不可见则使用此方法什么都没有。否则该方法将首先调用onGetItemByIndexitemIndex来获取一个更新项目然后重新定位所有可见项目的位置。 此方法将更新所有可见项。 这个方法将滚动内容的位置移动到itemIndex-th item 的位置在当前版本中itemIndex是从0到MaxInt offset是从0到scrollrect视窗大小。 对于垂直滚动块当一个可见项的高度在运行时发生变化时这个方法应该调用LoopListView2组件来重新定位所有可见项的位置。
对于水平滚动块当可见项的宽度在运行时发生变化时则使用此方法来让LoopListView2组件重新定位所有可见项的位置。 快速移动将立即完成 使用viewport快照点获取最近的项目索引。 设置snap目标项索引。这个方法在PageViewDemo中使用。 清除当前的捕捉目标然后LoopScrollView2将自动捕捉到CurSnapNearestItemIndex。