既然要修改缓动效果,首先要定位到UIScrollView。
首先开始分析,在Drag()方法里,mMomentum会不断的变大,只有
if (pressed) mMomentum = Vector3.zero;
那么,为什么我们实际滑动的距离都会受限制或者说会被抑制呢?
最终我们会在LateUpdate()方法里发现目标
// Move the scroll view Vector3 offset = NGUIMath.SpringDampen(ref mMomentum, dampenStrength,delta); MoveAbsolute(offset);
在我们按下时,mMomentum会随之变小,从而达到抑制我们本次滑动距离的目的
接下来开始正题:
//公开一个参数,在面板组件上可以直接调试已经方便开发人员调整
public float DampenStrengthDiff = 2f;
//同时,不要忘了关键性的一步
NGUIEditorTools.DrawProperty("DampenStrength Diff", serializedObject,DampenStrengthDiff");
//这个字段为了有一些情况或者是面板不希望进行缓动时的机制
float _SpringDampenTime = delta;
//如果我们公开的参数被输入>0则进行计算,否则不处理
if (DampenStrengthDiff > 0)
{
_SpringDampenTime = delta / 2;
}
//这里把我们修改后的强度以及时间传入
Vector3 offset = NGUIMath.SpringDampen(ref mMomentum, dampenStrength - DampenStrengthDiff, _SpringDampenTime);
MoveAbsolute(offset);
最后一步,运行查看效果以及调试~
Tips:通过修改DampenStrengthDiff的值就可以控制列表的缓动效果了~~



