Unity3D 游戏开发之自由视角下的角色控制 文中,博主与大家分享自己在角色控制方面的一些感悟。今天呢,我们继续来探讨Unity 3D 角色控制的内容,今天博主将解决在上一篇文章中没有解决的问题,即自由视角下的角色控制。如图是博主非常喜欢的《古剑奇谭》游戏截图,在这款游戏中就使用了博主今天要讲解的自由视角,所谓自由视角是指玩家可以按照自身坐标系向着四个不同的方向移动,当玩家按下鼠标右键时,可以绕Y 轴按照一定的角度旋转摄像机,在旋转的过程中,角色将旋转相应的角度。在移动的过程中,摄像机会保持与玩家间的一定距离,然后跟随角色进行移动。好了,下面我们正式开始今天的内容吧! 在开始今天的内容前,首先让我们来学习下Unity3D 中较为重要的一部分知识,理解这些知识是我们开始学习今天内容的基础。 1、 Input.GetAxis(): 该方法用于在Unity3D 中根据坐标轴名称返回虚拟坐标系中的值,通常情况下,使用控制器和键盘输入时此值范围在-1 到 1 之间。这段话怎么理解呢?我们来看下面这段脚本: using UnityEngine; using System.Collections; public class example : MonoBehaviour { //水平速度 public float HorizontalSpeed = 2.0F; //垂直速度 public float VerticalSpeed = 2.0F; void Update() { //水平方向 float h = HorizontalSpeed * Input.GetAxis("Mouse X"); //垂直方向 float v = VerticalSpeed * Input.GetAxis("Mouse Y"); //旋转 transform.Rotate(v, h, 0); } } 这段脚本呢是根据鼠标的位置来旋转物体从而实现对物体的观察,从这段脚本中我们可以看出,通过获取输入轴的办法,我们可以获得鼠标移动的方向进而实现对于物体的旋转控制。在 Unity3D 中我们可以通过Edit->Project Setting->Input 来查看项目中的坐标轴名称:文章来自【狗刨学习网】 在后面,我们还将使用这种方式,大家可以对这个方法有进一步的了解。 2、欧拉角eulerAngles: 该值是Vector3 类型的值,x、 y、 z 分别代表绕x 轴旋转x 度,绕 y 轴旋转y 度,绕 z 轴旋转z 度。因此,该值最为直观的形式是可以允许我们直接以一个三维向量的形式来修改一个物体的角度,例如下面的脚本: float mY = 5.0; void Update () { mY += Input.GetAxis("Horizontal"); transform.eulerAngles =new Vector3(0,mY, 0); } 如果你已经理解了上面的话,那么不...