键盘WSAD控制行走
最简单的就是使用Input.GetKeyDown()函数接收键盘 值输入,但在这里还有更简单的方法去实现。
利用Input.GetAxis()来获取坐标轴的改变。在InputManager中有许多参数,对应目前的需求只要Horizontal和Vertical这两个,前者对应坐标系的左右,后者对应前后。
float H = Input.GetAxis("Horizontal");
float V = Input.GetAxis("Vertical");
//Debug.Log("H: " + H + " V: " + V);
Vector3 direction = H * m_transform.right + V * m_transform.forward;
Vector3 NewPosition = m_rigidbody.position + direction;
m_rigidbody.MovePosition(NewPosition);
摄像机固定在主角的后上方
代码需要绑定在主摄像机上,基本思想就是在Update()中检测主角的坐标轴,然后根据主角的坐标算出摄像机应该所在的位置,在利用LookAt()函数使摄像机角度转向主角。
这里为了使摄像机的转向趋于平滑,可以使用Lerp()函数。
Vector3 NextPos = target.forward * -1 * distance + target.up * high + target.position;
m_trans.position = Vector3.Lerp(this.transform.positi