京城游戏人-Day15: Unity 中 SrollRect 的滚动边界问题
2016-08-11 15:42
1061 查看
京城游戏人-Day15: Unity 中 SrollRect 的滚动边界问题
-作者:大锐哥
地址:http://blog.csdn.net/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; } ScrollContent.transform.position = pos; }
其中如果是使用 GridLayoutGroup 的话,加入横向只有一个 grid,纵向就要知道高度。如果是一开始位于最下面(向 CandyCrush 首页那样),则可以这样写:
float maxY = Constants.ScreenHeight * count * 0.5f - Constants.ScreenHeight; float minY = Constants.ScreenHeight * count * 0.5f * -1;
注意:其中 ScreenHeight 要根据你在摄像机处设置的 Size 值决定(就是 Size 的两倍)。count 就是你的纵向 grid 行数。
-
作者:大锐哥
地址:http://blog.csdn.net/prevention
-
相关文章推荐
- 京城游戏人-Day16: 解决 Unity 2D 游戏中贴图模糊的问题
- 拷问Unity:开发U3D游戏要思考的问题
- 拷问Unity:开发U3D游戏要思考的问题
- 【Unity】使用Time.timeScale暂停游戏的时候的一些问题
- unity像素游戏里面的像素自适应关系和移动抖动闪烁问题分析
- Cocos2D游戏项目CCTableView在Xcode7.2下的无法滚动问题
- As3显示对象scrollRect滚动问题
- 探究eclipse转AS,解决65K问题---UNITY游戏相关
- Unity 3D酷跑游戏中遇到的问题
- 关于unity动态添加游戏对象问题,如何动态添加一个菜单【三】
- 【Unity2D游戏实战 之 2D滚屏射击】1.背景滚动 (一)
- android 2D游戏开发,引擎设计(六) 画面平移晃动与平移边界问题
- 用Unity开发基于Oculus Rift的体验游戏时遇到天空盒重影问题的解决方法
- 拷问Unity:开发U3D游戏要思考的问题
- Unity和Android交互,按下锁屏键解锁后游戏重新启动问题解决方法
- 拷问Unity:开发U3D游戏要思考的问题
- [研发经验] 导致游戏研发不顺利的几个典型“边界问题”
- unity中游戏暂停的问题
- Cocos2D游戏项目CCTableView在Xcode7.2下的无法滚动问题
- unity 3D之ugui Scroll Rect拖拽消息冲突问题