物件的變形

遊戲物件可以透過腳本進行控制,例如移動、旋轉、縮放等操作。

首先建立一個 2D 或 3D 物件並放在場景中的任意位置,透過腳本讓物件回到原點。

 

建立一個 C# 腳本並套用到遊戲物件,此時 Vector2 ( ) 數值代表 2D 座標,Vector3 ( ) 數值代表 3D 座標。

 

按下 Play 測試遊戲時,物件將會移到 ( 0,0 ) 或是 ( 0,0,0 ) 的原點位置。

 

除了控制物件移到指定位置也可以朝著指定的方向移動,Translate ( ) 數值為物件的移動距離。

注意!如果移動距離的數值不是整數時,必須在後面加上 f 註明為浮點數,例如 0.5

如果沒有註明數值為浮點數將會出現以下的錯誤訊息!

 

遊戲執行時,物件朝向 X 軸的正向移動(自身座標)。

 

控制物件旋轉,左圖為每個影格旋轉 1 度,右圖為每個影格旋轉 0.5 度。

因為 Update ( ) 是每個影格執行一次,但是遊戲執行時 FPS 是持續變動的,將會導致轉速的變化,只是不一定感覺得到。

 

如果希望物件每秒旋轉 360 度可使用 Time.deltaTime 控制,此變數是從呼叫 Undate 或 FixedUpdate 的時間。

 

物件旋轉是以「度」為單位,如果希望物件旋轉到特定角度,可使用 transform.rotation 與 Quaternion.Euler 語法。

 

前面的腳本雖然可以控制物件的移動與旋轉,但是在需要更精確的物理計算時,建議使用 Rigidbody 剛體。

物件必須有 Rigidbody 剛體元件,否則將會出現錯誤訊息。

Rigidbody.position 官網教學

Rigidbody.velocity 官網教學

Rigidbody.rotation 官網教學

 

使用 Transform.LookAt 可以讓物件轉向指定的目標,用於製作武器瞄準或 Billboard 廣告板效果。

Transform.LookAt 官網教學

 

使用 Vector3.Lerp 與 LookAt 控制物件朝指定的目標移動。