Unity Scroll View自动滚动

首先解释一下,Scroll view 是如何开始滚动的。

正常情况下,鼠标点击或者拖动会使其开始滚动,也就是等于调节了ScrollView上ScrollRect组件的速度值。

如果我们能通过持续给ScrollRect附上一个速度值,那么它就可以自动进行滚动

在设置上面,如果你希望是水平滚动,那么就勾选Horizontal

MovementType随意选择一个就行,没有影响

Inertia一定要勾选上,并且DecelerationRate必须是一个大于0的值,在这里默认值就行

        ScrollRect 组件的 inertia 属性控制是否启用滚动的惯性效果。

inertia 设置为 true(默认值)时,当用户在滚动内容后释放鼠标或手指时,内容会继续根据之前的速度滚动一段时间,并逐渐减速直到停止。这种效果模拟了现实中物体在受到外力后继续移动的行为。

如果你将 inertia 设置为 false,释放指针后会立刻停止,不具有惯性效应。也就是说速度会立刻变为0 。

//初始化一个控制滚动速度的变量  
  public float scrollSpeed = 100f;
//获取ScrollRect组件
public ScrollRect scrollRect;

//在Update中加
scrollRect.velocity = new Vector2(-scrollSpeed, 0f);

这样能够简单的控制视图向左滚动,而不用鼠标拖拽控制。


再简单说一下scrollrect的速度是以每秒像素数(pixels per second)为单位进行设置的。

在函数中直接设置 velocity 属性,不受帧率影响。无论当前帧率是多少,速度都会按照指定的数值进行更新。

如果想禁止鼠标拖拽,可以简单的关闭画布上的图形射线投射组件,这样鼠标不会对ui进行检测

此外如果禁止了鼠标拖动,Inertia必须要勾选,其变化率也必须大于0 。因为鼠标不操作的情况下,会设置滚动视图的速度一直为0,这样就没办法进行自动滚动。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值