对比一下vector3.forward和transform.forward的区别
vector3.forward的值永远等于(0,0,1)。
transform.forward的值则等于当前物体的自身坐标系z轴在世界坐标上指向,因此不一定等于(0,0,1),但是其magnitude长度是1
public void Move(float x,float z)
{
if (x != 0 || z != 0)
{
//1转向 前往的方向
TransformHelper.LookAtTarget(new Vector3(x, 0, z),
transform,rotationSpeed);
//2向目标运动:核心 调用 内置组件提供的方法【角色控制器的 运动的方法】
//如果需要模拟重力 ,设置y=-1 表示:保证主角贴在地面上,不会飘起来!
Vector3 motion = new Vector3(transform.forward.x, 0, transform.forward.z);
chController.Move(motion*Time.deltaTime*moveSpeed);
//3播放运动动画
chAnim.PlayAnimation("run");
}
else
{
chAnim.PlayAnimation("idle");
}
}
GameObject移动有3种方式:
链接: link.