京城游戏人-Day15: Unity 中 SrollRect 的滚动边界问题

本文介绍了如何在Unity中解决ScrollRect滚动到边界时的过度滑动问题,方法是通过控制Content并在OnValueChanged事件中添加相应函数,限制Y方向的滚动。适用于Movement Type为Clamped的情况,特别关注了GridLayoutGroup的场景,提供了计算滚动限制的代码示例。
摘要由CSDN通过智能技术生成

京城游戏人-Day15: Unity 中 SrollRect 的滚动边界问题

-

-

一般添加完一个 ScrollView 之后的结构是这样的:

Canvas
    -Viewport
        -Content
            -Item0
            -Item1
            -Item2

本文的方法是通过控制 Content 来实现边界控制的问题,即滑动到最下面不要再划了、最上面也不要再向上了。这个问题一般只出现在需要 ScrollView 的 Movement Type 为unrestricted时。

  1. 给 ScrollView 的 On Value Changed 事件添加一个对应的函数,比如叫 OnScrollValueChanged
  2. 在这个函数所在的脚本里,要想办法拿到 Content
  3. 在这个脚本中添加如下代码,假设你也是想在 Y 方向限制滚动

    public void OnScrollValueChanged(Vector2 value) {
        Vector3 pos = ScrollContent.transform.position;
        if (pos.y > maxY) // maxY 要根据你的情况自己设定
        {
            pos.y = maxY;
        }
        else if (pos.y < minY) { // minY 要根据你的情况自己设定
            pos.y = minY;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值