Unity UGUI自定义无限循环滑动条 自动居中,点击某个子Item,将该Item 居中

本文介绍了一个基于Unity UGUI的无限滑动UI组件,能够实现平滑的左右滑动效果,自动居中及点击定位功能。作者分享了在解决快速滑动导致的位置误差和刷新卡顿问题上的经验和代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

感慨啊,这算是我首篇技术博客,以后尽量养成写技术博客习惯了。

 

功能如题所示,自己写的demo,基于ugui,可以无限左右滑动,自动居中,将所点击的item 自动滑动到居中位置,gif中没有录制到鼠标。。。


 

 

核心思路:假设生成7个view ,并设计其左边边界,如图

若0 的元素超过左边界就会移动到最右边,6元素的后面

右侧超过边界也一样

在此之前,我已经写过一个这样的空间,但有缺点,扛不住暴力拖拉,也就是当向左右滑时,如今滑动速度很快且滑动距离很大,就会导致view 位置发生误差,位置不在有序。为了解决这个位置,我在元素从左边移动到右边后,强制进行位置刷新,但又出现了新的问题,强制刷新位置没有处理好就会出现类似于卡顿的效果,累

还好现在,我新的自动定义控件这些问题都解决,我会将我的代码和思路分享给大家

 

 

 

移位操作,假设所有item 向右移动一大段距离,有item0 和item1 进行了越界,item0和item1肯定被加入到集合left,这时获取最大坐标的Item[6] ,在该item 的x坐标基础上加上item的宽度和间隔,就设置出新的最大坐标,如图

 

unity 版本2019.3.0f1

项目链接github:https://github.com/li10400/CustomControl

优快云下载(1积分): https://download.youkuaiyun.com/download/li_jin_/12078684

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值