一:物体无旋转时
transform.Translate(Vector3.forward * Time.deltaTime);
transform.Translate(transform.forward * Time.deltaTime);
transform.position += transform.forward * Time.deltaTime;
transform.position += Vector3.forward * Time.deltaTime;
此时物体无旋转,世界坐标=局部坐标,所以以上四种方法的效果相同,物体朝向(0,0,1)方向移动
二:物体有旋转时
transform.Translate(Vector3.forward * Time.deltaTime);
transform.Translate(transform.forward * Time.deltaTime);
第一种方法物体会朝向自身的Z轴方向移动
第二种方法会出现很奇怪的移动方向,建议不要使用
transform.Translate(transform.forward * Time.deltaTime,Space.World);
transform.Translate(Vector3.forward * Time.deltaTime,Space.World);
第一种方法物体会朝向自身的Z轴方向移动
第二种方法物体会朝向世界坐标的Z轴方向移动
三:总结
Vector3.forward的值永远等于(0,0,1)
transform.forward的值等于当前物体自身Z轴在世界坐标轴上的指向,不一定等于(0,0,1),但是它的magnitude永远等于1