關於Unity中物體分別在本地和世界座標系對應方向的移動

方向

Vector3能夠定義以世界座標軸爲參考的三維矢量,Vector3.forward,Vector3.up,Vector3.right方別對應物體世界座標系的Z,Y,X軸方向的單位向量,或者叫三維單位方向向量,是矢量函數

this.transform.forward,this.transform.up,this.transform.right分別對應當前物體在本地座標系的Z,Y,X軸方向的單位向量,或者叫三維單位方向向量,是矢量this

 

距離

Update(){orm

  float distance = this.first_move_speed * Time.deltaTime;//每秒移動的距離,是標量it

  ......io

 

注意

三維單位方向向量乘標量距離才能成爲一個可使用的有長度有方向的三維矢量form

移動translate函數用(X軸方向的標量,Y軸方向的標量,,Z軸方向的標量,,指定的座標系)就能夠表示transform

move函數的是以三維矢量爲參數date

物體position的加減是以三維矢量爲單位的float

 

方法一

this.transform.Translate(0, 0, -distance, Space.Self);//本地座標系爲參考系
this.transform.Translate(0, 0, -distance, Space.World);//世界座標系爲參考系方法

 

方法二

this.c_ctrl.Move(-this.transform.forward * distance);//,this.c_ctrl是Unity自帶的角色控制器,括號裏的是一個三維矢量,三維單位方向向量乘標量距離,本地座標系爲參考系

this.c_ctrl.Move(-Vector3.forward * distance);//世界座標系爲參考系

 

方法三

this.transform.position+=transform.forward * distance;//作了一個三維矢量的加法,三維單位方向向量乘標量距離,本地座標系爲參考系

this.transform.position+=Vector3.forward * distance;//世界座標系爲參考系

相關文章
相關標籤/搜索