Unity拖动摄像机加上惯性滑动的效果
2015-11-17 10:50
801 查看
最近项目里有这个需求,在网上搜了一圈,没找到非常合适的解决方法,不过提供了一个很有用的思路。之前代码里是用获取点位置然后移动摄像机,还有一种思路是获取点击位置的移动速度。最后我的在项目里的解决方式是把这两种结合起来,移动的时候用位置,当手指离开时就用速度,然后再递减到0就可以做出这个效果了。虽然代码还是很烂。
//这个方法放在Update里执行 private void HandleMouseInput () { //按下时记录位置 if (Input.GetMouseButtonDown(0)) { _prevPosition = Input.mousePosition; startMousePosition = Input.mousePosition; } //移动时更新位置 if (Input.GetMouseButton (0)) { Vector2 curMousePosition = Input.mousePosition; MoveCamera (_prevPosition, curMousePosition); _prevPosition = curMousePosition; inertia = (Camera.ScreenToWorldPoint(_prevPosition) - Camera.ScreenToWorldPoint(startMousePosition)); } else //最后递减 { currentSpeed = -inertia*Time.deltaTime; if (Mathf.Abs(inertia.y) > 0.2f) inertia -= (inertia/10); else inertia = Vector3.zero; transform.position += currentSpeed; transform.position = ApplyBounds(transform.position); //Debug.Log("inertia" + inertia); } }
相关文章推荐
- unity实现多点触控代码
- 在Unity中实现动画的正反播放代码
- unity实现摄像头跟随
- Unity3D上路_01-2D太空射击游戏
- Unity3D上路_02-第一视角射击游戏
- Unity3D上路_03-塔防游戏
- Unity3D上路_04-基础资源介绍
- Unity3D上路_05-网络相关
- [软件资讯]Unity已支持将3D游戏导出成Flash
- Unity 武器拖尾效果
- unity常见问题之20题
- Unity3D动画存储插件
- unity 赛车相机跟随物体移动
- Unity 预编译宏
- Unity AssetDatabase类
- VS2013中 命名空间“UnityEngine”中不存在类型或命名空间名称“UI”。是否缺少程序集引用?
- Unity3D占用内存太大的解决方法
- 【Unity】安卓项目使用带有资源Jar包SDK的打包方法
- Unity2d 5.1 弱联网游戏制作 (一)场景创建、添加组件、精灵移动、主摄像机跟随
- Unity2d 弱联网游戏制作(二) 动画、场景、渲染层、碰撞检测、音乐播放