6.自定义相机控制器

编程入门 行业动态 更新时间:2024-10-22 13:46:57

6.<a href=https://www.elefans.com/category/jswz/34/1771438.html style=自定义相机控制器"/>

6.自定义相机控制器

愿你出走半生,归来仍是少年!

        Cesium For Unity自带的Dynamic Camera,拥有优秀的动态展示效果,但是其对于场景的交互方式用起来不是很舒服。

        通过模仿Cesium JS 的交互方式,实现在Unity中的交互:

  • 通过鼠标左键拖拽实现场景平移
  • 通过滚轮滑动实现场景的缩放
  • 通过滚轮按下拖拽实现旋转

1.平移

        通过鼠标左键的按下和弹起标记是否进行平移拖拽,拖拽期间将鼠标在上一帧和当前帧的坐标进行比较得出移动向量,用相机的当前位置减去移动向量得出相机新的位置。通过相机的反向移动实现场景的正向移动。

左键平移效果

2.缩放

        网上有很多通过鼠标滚轮进行场景缩放的文章,但是都存在相机位置不同时缩放速度相同的情况,在实际的三维场景缩放中会出现相机距地远近不同时缩放太慢或太快的情况。

        通过获取屏幕中心点的坐标,计算相机与其距离,每次滚轮缩放时相机位置增加距离的十分之一,实现根据屏幕中心的距离缩放。

滚轮缩放效果

3.旋转

        Cesium JS中旋转是通过滚轮按下后通过移动鼠标进行旋转,旋转中心为鼠标点击的位置。

        在Unity中通过鼠标滚轮按下时确认此次的旋转中心,并通过鼠标的移动进行旋转。鼠标横向移动则对场景进行水平方向的选择,鼠标纵向移动则对场景进行垂直方向的旋转。

        在计算旋转角度时,可通过屏幕大小设定旋转角度。横向上,半个屏幕宽度为360°的水平旋转;纵向上,半个屏幕高度为180° 的垂直旋转。

滚轮旋转效果

4.总结

        至此,相同于Cesium JS 的相机操作完成。实现了在Windows(android上好像不行)上的平移、缩放、旋转。

更多推荐

6.自定义相机控制器

本文发布于:2023-12-07 11:23:17,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1671096.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:自定义   控制器   相机

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!