此脚本挂载在摄像机上,直接复制粘贴也是可以直接使用的。
//定义欧拉角.
Vector3 angle = Vector3.zero; //初始化属性xyz都为0.
//改变欧拉角.
angle.x = m_Transform.localEulerAngles.x - Input.GetAxis("Mouse Y") * 100f * Time.deltaTime;
angle.y = m_Transform.localEulerAngles.y + Input.GetAxis("Mouse X") * 100f * Time.deltaTime;
//通过欧拉角 改变自身的欧拉旋转角度.
m_Transform.localEulerAngles = angle;
解读一下代码意思:
前三段代码 都是改变angle这个定义的欧拉角的数值,因为鼠标只有屏幕位置 所以只需要改变Y和X,至于+-和XY轴是反的问题我还没找到解释,如果有大佬知道的话麻烦评论区告诉我一下谢谢了。
最后一段代码是 通过欧拉角数值的动态改变 从而改变自身的欧拉旋转。
单独解释代码意思:
angle.x = m_Transform.localEulerAngles.x - Input.GetAxis("Mouse Y") * 100f * Time.deltaTime;
其中,m_Transform.localEulerAngles.x 的意思是:摄像机的欧拉旋转的x轴的值。
Input.GetAxis("Mouse Y") 的意思是:当前鼠标在屏幕位置Y轴上的位置。
Input.GetAxis("Mouse X") 的意思是:当前鼠标在屏幕位置X轴上的位置。
100f * Time.deltaTime 可以理解为 鼠标速度/鼠标灵敏度。
如果需要了解第二人称,第三人称的镜头旋转,或更详细的第一人称可以查看这个文章:
https://blog.csdn.net/ghl1390490928/article/details/80139439
如果要了解更详细的localEulerAngles方法解释:
其他旋转方法: