Unity 滑动列表时实现平滑阻尼效果修改篇

本文介绍如何改进Unity中滑动列表的平滑阻尼效果,避免不在边界时的异常回弹。通过区分正常拖动和边界检测,控制速度和位移来实现。修改后,列表不再局限于纵向拖动,支持在矩形框范围内任意方向滑动。

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

之前的方法实现出来的效果不太好,会出现不在边界也会有,一拖动就返回的现象,所以又重新修改了一下,不同的地方在于将边界检测与正常情况拖动进行了分类处理。

正常情况的检测是通过间接控制速度,边界检测则是控制位移;之前的是列表的,只能纵向拖动,现在修改了之后改为不限定方向,只要不出一个矩形框的范围就行。

float touchDeltaPositionX;
float touchDeltaPositionY;
float maxX=0f;
float maxY=0f;
float targetX=0f;
float targetY=0f;
float newPositionX;
float newPositionY;	


 
if(Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved){
				touchDeltaPositionX=Input.GetTouch(0).deltaPosition.x;
				touchDeltaPositionY= Input.GetTouch(0).deltaPosition.y;
				maxX=Mathf.Max(maxX,Mathf.Abs(touchDeltaPositionX));
			    maxY=Mathf.Max(maxY,Mathf.Abs(touchDeltaPositionY));
				if(touchDeltaPositionX<0)
					maxX=-maxX;				
				if(touchDeltaPositionY<0)
					maxY=-maxY;
				    groupObj.transform.Translate(maxX*Time.deltaTime*10,maxY*Time.deltaTime*10,0);
		}
		else{
				if(groupObj.transform
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值