这个效果就类似安卓手机翻相册里面图片时左右翻的效果,做出这个效果有很多种方式,比如移动端的话你可以直接判断手势,然后去让图片往相应
方向滑动,我这里的方法是直接根据ScrollBar(用的NGUI,UGUI应该也是可以的)的值来判定,适用各种平台,方法如下:
(第一次发表文章,萌新,不到之处,多多见谅!)
public UIScrollBar scrollBar;
public UIScrollView scrollView;
private float lastValue = 0f;
private float xOffsetRate = 0.25f;
private float scrollRate;
private int viewItems = 3;
void Start()
{
scrollRate = viewItems > 1 ? 1f / (count - 1) : -1f;
scrollView.onDragFinished += DragFinished;
}
void DragFinished()
{
if (scrollRate == -1f) return;
if (scrollBar.value - lastValue >= xOffsetRate * scrollRate)
{
lastValue += scrollRate;
}
else if (lastValue - scrollBar.value >= xOffsetRate * scrollRate)
{
lastValue -= scrollRate;
}
DOTween.To(() => scrollBar.value, x => scrollBar.value = x, lastValue, 0.3f);
}
我这边是一次只能滑动一个图片,当然你可以在DragFinished()里面计算出(scrollBar.value - lastValue)/(xOffsetRate * scrollRate)
的一个比例值value,然后lastValue += scrollRate * value,做出滑动多张的效果。
另外,已知一个优化方向就是:当手或鼠标滑出ScrollView时,就判定滑动结束,调用DragFinished(),这样体验更好。
大家有什么更好的方法,欢迎补充,互相学习交流,共同进步!(这个博客排版为什么发出来显示有问题,文本不能自动换行。。。)