Unity中Transform移动相关

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

路程 = 方向 * 速度 * 时间

参数一表示位移多少  路程 = 方向 * 速度 * 时间
参数二表示 相对坐标系   默认 该参数 是相对于自己坐标系的

相对于世界坐标系的 Z轴 动  始终是朝 世界坐标系 的 Z轴正方向移动
this.transform.Translate(Vector3.forward * 1 * Time.deltaTime, Space.World);

相对于世界坐标的 自己的面朝向去动   始终朝自己的面朝向移动
this.transform.Translate(this.transform.forward * 1 * Time.deltaTime, Space.World);

相对于自己的坐标系 下的 自己的面朝向向量移动 一定不会这样让物体移动 XXXXXXX
this.transform.Translate(this.transform.forward * 1 * Time.deltaTime, Space.Self);

相对于自己的坐标系 下的 Z轴正方向移动  始终朝自己的面朝向移动
this.transform.Translate(Vector3.forward * 1 * Time.deltaTime, Space.Self);

图例

假如一个物体是在Y轴旋转了45度

1先在世界坐标系取0,0,1然后在世界坐标系上向0,0,1移动所以是朝世界坐标系 的Z轴正方向移动

2先在世界坐标系取以自己正方向的向量也就是这个斜着45°的Z轴方向再把这个方向放在世界坐标系上移动所以最终是朝自己面朝向移动

3先在世界坐标系取以自己正方向的向量也就是这个斜着45°的Z轴方向再把这个方向放在自己的坐标系上移动所以最终是朝着世界坐标系X轴方向移动

4先在世界坐标系取0,0,1然后在自己的坐标系上向0,0,1移动所以最终是朝自己面朝向移动

其实如果不去细究的话就把Vector3里面自带的方向当成自己的方向用就行了

比如向面朝向移动

this.transform.Translate(Vector3.forward * 1 * Time.deltaTime);

 向上动

this.transform.Translate(Vector3.up * 1 * Time.deltaTime;

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6