摄像机的使用心得
心得
这是一个对我而言比较困难的一个门槛,因为我自己的数学不是很好,网上的教程使用的都是vector3里面的slerp,lerp等插值的方法去对相机本身做一个控制,对没有系统学过的我来说转化为自己的内容比较吃力 今天在研究的过程中,找到了一些比较方便快速开发并且比较简单易懂的方法,想记录一下,如果有萌新的u3d开发小白可以试试我的方法,我个人对这个方式还是比较满意的
使用
①
首先是摄像机的跟踪,大多数的大佬使用的都是在update方法里获得摄像机和物体之间的相对位置,从而控制他们的同步,我这里的一个最快速简单的思路就是把这个摄像机挂在物体上,成为物体的子级,这样物体一动,摄像机就自然而然跟着动了
②
接着是摄像机能通过控制鼠标的水平和竖直方向的移动以物体为中心进行旋转的功能实现,这个功能看似小,但是功能本身的意义很重大,因为他关乎了用户是否能更加全面和直观的对游戏进行更深入的了解和观察,想想你只能看到眼前的物体,即使移动了物体,同一个场景里的物体没有旋转摄像机你看到的永远都是一个角度下的产物,耐久度一定会大打折扣的 所以这个功能十分的关键,那么如何实现呢 网上也有很多的方法 我的方法比较简单粗暴 给你需要以此为中心进行旋转的物体的中心点创建一个空对象 然后把摄像机挂在他的子级下,然后获得鼠标下的水平位置的移动信息,再通过控制这个空对象的y值旋转达到以物体为中心进行摄像机旋转的功能需求 这个不需要涉及到过多的向量知识,能方便萌新和急需要现成的功能实现的人快速开发一个摄像机的跟踪和视角转换
float x = Input.GetAxis("Mouse X");
cameraController.transform.Rotate(new Vector3(0, x, 0));
是的,你没看错,需要写的代码就只有这两行,cameraController这个是一个声明,public或者在start,awake方法里GameObject.find方法都可以,找到你设置的空对象就可以了
最后
当然,一直使用这个毕竟不是长久之计,目前我也没有太大的时间去钻研这个数学的问题,只能等项目上线后自己补补习,把这些知识真正学会并应用起来,到时再写个笔记吧 加油~
|