京城游戏人-Day15: Unity 中 SrollRect 的滚动边界问题
-
- 作者:大锐哥
- 地址:http://blog.youkuaiyun.com/prevention
-
一般添加完一个 ScrollView 之后的结构是这样的:
Canvas
-Viewport
-Content
-Item0
-Item1
-Item2
本文的方法是通过控制 Content 来实现边界控制的问题,即滑动到最下面不要再划了、最上面也不要再向上了。这个问题一般只出现在需要 ScrollView 的 Movement Type 为unrestricted
时。
- 给 ScrollView 的 On Value Changed 事件添加一个对应的函数,比如叫 OnScrollValueChanged
- 在这个函数所在的脚本里,要想办法拿到 Content
在这个脚本中添加如下代码,假设你也是想在 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;