//下列两条语句等价
transform.Translate(Time.deltaTime*transform.up,Space.World);
transform.Translate(Time.deltaTime*Vector3.up);
//下列两条语句等价
transform.Translate(Time.deltaTime*transform.up,Space.World);
transform.Translate(Time.deltaTime*Vector3.up);
transform.transformDirection()将一个方向从局部坐标系转成全局坐标,不考虑长度
transform.inverseTransformDirection()同理
transform.transfomVector()将一个向量从局部变成全局
transform.inverseTransformVector()同理
transform.forward当前物体的局部坐标系的z轴在世界坐标系上的指向
transform.right为x轴
transform.up为y轴
transform.Translate(transform.forward * Time.deltaTime, Space.Self);
首先transform.forward是当前物体的物体坐标系的z轴在世界坐标系上的指向,那么就是系统根据物体本身的局部坐标计算出的世界坐标!!!,但是如果你用了Space.Self,需要的是局部坐标,那么你的transform.forward就会再次被转换成局部坐标。所以就造成了,如果你物体旋转度是30,transform.forward就是30度的方向,然后,transform.forward在计算成局部坐标就会变成再+30度,所以看起来就是世界坐标的60度方向移动。
vector3.forward会计算旋转的影响,会根据旋转的角度产生变换
transform.forward不计算旋转的影响,固定根据世界坐标or局部坐标的Z轴运动