简单技巧,谁都能写出无限循环列表

mark

非常巧妙思路,必须给一个赞

非常巧妙思路,必须给一个赞+1

思路清晰

巧妙!

学到了

卧槽,前两天就用代码写 累死了 也没写出来特别符合需求的

豁然开朗,好思路

大码的赞!

感谢分享

mark

我也写过代码控制的,但是拓展性还是差,不能满足所有效果要求。而这种思路下,只要写一次,之后想怎么弄,修改动画就可以了。再来这种需求也不慌了。

请教大佬如何实现,每次正好滚动一格呢,或者是松开手后滚动到中间。:blush:

思路还不错

先求出你要吸附的位置,再用lerp 过渡到目标位置就行了:
比如:屏幕有5个卡片,要捕捉一格就是 1/5 = 0.2, 所以一格目标是 targetProgress = progress - progres %0.2
在update 里 将 progress, 通过 progress = lerp(progress,targetProgress ,detlaTime) 持续计算,就会吸附到对齐卡片的位置

我自己试了下,确实可以一次移动一格,但是如果移动的多了,会有偏移,越来越大。 不知我这样写是否有问题

谢谢大佬,:grin:,小弟又有个疑问,这种循环列表如果我想同屏显示5个,但我有10多个物体,那么该如何显示后面的呢

0.1这个应该写dt*3, 可能lerp的速度太慢?暂时没看出别的问题。
如果要显示10多个物体,这10个只是数据,根据你滚动的偏移位置,将屏幕上的5个刷新。
比如 屏幕上物品ID是 0,1,2,3,4, 滚动后位置偏移到5, 顺序就变成 5 ,6,7,8,9, 可以在最后一个移出从另外一边移入的时候刷新。

思路巧妙啊

干得漂亮!:+1: