鼠标控制地图的平滑移动和缩放
2016-08-02 10:01
615 查看
首先用鼠标滚轮进行缩放,也就是用到了 Input.GetAxis("Mouse ScrollWheel")这个值来判断放大或是缩小。
然后通过上面的值设置Camera的orthographicSize(正交camera)来缩放相机的显示范围。
newSize -= Input.GetAxis("Mouse ScrollWheel") * SizeSpeed;
//限制了最小与最大缩放
if (newSize < 0 )
{
newSize = MinSize;
}
if (newSize > 5)
{
newSize = MaxSize;
}
MainCam.orthographicSize = Mathf.Lerp(MainCam.orthographicSize, newSize, Time.deltaTime * SizeSmooth);
相机的平滑移动如下:
float newMoveSpeed = MoveSpeed * MainCam.orthographicSize / 10.0f;
if (Input.GetMouseButton(2))
{
transform.Translate(Vector3.left * Input.GetAxis("Mouse X") * newMoveSpeed);
transform.Translate(Vector3.down * Input.GetAxis("Mouse Y") * newMoveSpeed);
}
当然,变量预定义,相机获取就不写出来了...
然后通过上面的值设置Camera的orthographicSize(正交camera)来缩放相机的显示范围。
newSize -= Input.GetAxis("Mouse ScrollWheel") * SizeSpeed;
//限制了最小与最大缩放
if (newSize < 0 )
{
newSize = MinSize;
}
if (newSize > 5)
{
newSize = MaxSize;
}
MainCam.orthographicSize = Mathf.Lerp(MainCam.orthographicSize, newSize, Time.deltaTime * SizeSmooth);
相机的平滑移动如下:
float newMoveSpeed = MoveSpeed * MainCam.orthographicSize / 10.0f;
if (Input.GetMouseButton(2))
{
transform.Translate(Vector3.left * Input.GetAxis("Mouse X") * newMoveSpeed);
transform.Translate(Vector3.down * Input.GetAxis("Mouse Y") * newMoveSpeed);
}
当然,变量预定义,相机获取就不写出来了...
相关文章推荐
- 使用WPF Resource以及Transform等技术实现鼠标控制图片缩放和移动的效果
- 使用WPF Resource以及Transform等技术实现鼠标控制图片缩放和移动的效果
- OpenGL之鼠标控制坐标系旋转、缩放、移动
- unity使用鼠标控制移动、缩放、旋转
- MapXtreme2005 Web页面上用鼠标中间键控制地图缩放
- MapXtreme2005 Web页面上用鼠标中间键控制地图缩放
- 鼠标控制人物在地图移动的方法
- 浏览大图时鼠标感应控制层滚动条的移动
- selenium+python控制鼠标移动
- Unity鼠标控制物体360°旋转和点击移动
- 一个鼠标滚轮控制大小的缩放类。
- 用JS控制图片随鼠标移动
- 艾伟_转载:在WPF里面实现以鼠标位置为中心缩放移动图片
- 【SCRIPT脚本控制页面不随ctrl+鼠标滚轮而缩放】+【CSS控制页面文字大小不随浏览器设置而改变】
- 【Unity3D】键盘鼠标控制视角的移动
- 在WPF里面实现以鼠标位置为中心缩放移动图片
- 鼠标滚轮控制图片缩放
- 随鼠标移动在状态栏显示地图坐标
- C#鼠标控制控件移动的示例
- 经纬度随鼠标在地图上移动随时显示