一、在预制上挂LoopScrollRect组件 二、导出节点 三、lua层注册调用接口InitLoop,初始化组件,注册滑动事件 self.Scroll:InitLoop(childItems,0,giftNum,handler(self,self.OnRefreshGiftItem),toTop) 四、滑动事件回调会将现有item对象数据初始化, 并且在每次滑动的时候回调事件,初始化item, 回调传回的参数是对象索...
根据需要实现水平和垂直滚动条,如VScroll和HScroll,继承自ScrollLoop并实现具体的滚动逻辑。 使用方式: 在Unity编辑器中设置相关参数,并调用相应的方法创建和更新滚动列表。 方法二:使用RecyclingListView脚本 脚本挂载: 将RecyclingListView脚本挂载到ScrollRect所在的节点上。 参数设置: 设置Child Obj为列表项item的预制体...
LoopScrollRect 是基于 UGUI 的一个用来代替 ScrollRect 的插件,其特点是:不同于原生的 ScrollRect,LoopScrollRect 会根据 Viewport 的大小来加载子元素,比如说我们的总数据条目是 500 条,但 Viewport 只显示得下十来个 cell,这时候 LoopScrollRect 就不会傻傻地生成全部 500 个 cell,大大优化了性能。 按我暂时...
我们这里是垂直方向,所以选择 LoopVerticalScrollRect 组件,把组件替换原有的 ScrollRect,并且绑定与 ScrollRct 相同的 Content 和 Viewport。如果不想响应水平移动,需要把 Horizontal 取消勾选,基本参数类似 ScrollRect。比较特殊的是 Prefab Source 属性。Prefab Name 中的名称需要和我们之前保存的 Cell 预制体相同,Poo...
今天在测试大批量item刷新时候发现的一个有趣的点。基本上基于scroll rect的优化都是从节约item内存开销为原点出发的,但是对原生功能的支持缺乏适配。比如scroll 里滚动的三个方式中,clamped的源码实现如下 说白了就是计算位置和content内锚定位置的距离。在高速拖拽时整个Loop Scrollrect 的逻辑无疑是成立的,对象池更...
public void InitLoopScrollView(int count, List<ItemData> dataList){ this.count = count; datas = dataList; CreateContent(); CaculateMinCount(); CreateLoopObject(); UpdateContent(); scrollRect.onValueChanged.AddListener(OnScrolled); } void UpdateContent(){ ...
1.给ScrollRect节点添加LoopListView组件,并勾选ItemSnapEnable为true。 2.通过LoopListView.InitListView初始化时,totalCount需要传-1. 3.OnGetItemByIndex的回调参数index以(Int32.MinValue,Int32.MaxValue),需要自己做好与数据的索引换算。
在⾼速拖拽时整个Loop Scrollrect 的逻辑⽆疑是成⽴的,对象池更新后content⼤⼩改变,锚定位置刷新,然后判断移动距离平移。问题就出在缓速拖拽下。在拖拽速度很低的情况下,动态item尚未⽣成,滚动位置已经到达底部,此时clamped这种移动⽅式就会阻⽌你继续移动。直接锁死在原对象池的content锚定位置。...
ScrollViewLoop控制类 这个属性类需要挂载在ScrollRect物体身上,然后在面板上进行属性配置 usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassItemData{publicRectTransform itemRect;publicintindex; }publicclassScrollViewLoop:MonoBehaviour{publicGameObject itemPrefab; ...
要注意动画要勾选好是否loop 动画组件中有一项Apply Root Motion,这一项是影响动画的属性变化是否影响对象本身的真实情况,如当勾选此项时,人物动画中往前走对象坐标就会往前改变,若不勾选的话动画则不印象真实属性 混音器AudioMixer 通常把所需的声音输出到AudioMixer再输出给玩家 ...