前言
- 三个都是用来控制角色运动的
- 今天在用easy touch的时候遇到了一些坑
Transform
- Transform.translate(dir)会默认该dir为方向和距离,默认为Space.self,也就是相对于自身坐标系的运动
- dir就是向量,既有大小又有方向,进行这样的一个位移
- 这样transform无论如何旋转,移动的时候,总是沿自身的xyz轴
- MoveSpeed是EasyTouch的绑定事件
private void MoveSpeed(Vector2 speed)
{
cube_Transform.Translate(speed.x * Time.deltaTime, 0, speed.y * Time.deltaTime, Space.Self);
}
- 如果是Space.World,则沿世界坐标系的xyz轴移动
Rigibody
- rigibody.MovePosition( )
- 这个api是将刚体移动到某个具体的位置,因此需要指定一个具体的坐标
- 一般是用当前的transform.position+对应的位移即可
private void MoveSpeed(Vector2 speed)
{
mRigidbody.MovePosition(cube_Transform.position + new Vector3(speed.x, 0, speed.y) * Time.deltaTime);
}
CharacterController