Unity腳本:移動與旋轉

Unity腳本:移動與旋轉

在Unity中要移動與旋轉場景中的物件是相當簡單的。

首先要瞭解的是Transform元件。

在Unity場景中的每個物件都具有Transform元件。

Transform元件的主要功能就是用來儲存以及操作物件的位置、旋轉、及大小。

由於這個元件很常用,所以Unity很貼心的設計了一個簡寫:" transform "來代表這個元件。

這樣就不需要使用一般的GetComponent來取得Transform元件了。

我們在腳本中使用transform來代表該腳本所屬物件的Transform元件,

然後使用transform.Translate來進行移動,使用 transform.Rotate來進行旋轉。

複雜的就先撇開不說,來看看官網的簡單js範例

#pragma strict

public var moveSpeed : float = 10f;
public var turnSpeed : float = 50f;


function Update ()
{
    if(Input.GetKey(KeyCode.UpArrow))
        transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);
    
    if(Input.GetKey(KeyCode.DownArrow))
        transform.Translate(-Vector3.forward * moveSpeed * Time.deltaTime);
    
    if(Input.GetKey(KeyCode.LeftArrow))
        transform.Rotate(Vector3.up, -turnSpeed * Time.deltaTime);
    
    if(Input.GetKey(KeyCode.RightArrow))
        transform.Rotate(Vector3.up, turnSpeed * Time.deltaTime);
}

使用上下左右鍵來進行物件的移動以及旋轉,其中

Vector3.forward * moveSpeed * Time.deltaTime 的

Vector3.forward 代表的是正前方的方向

moveSpeed 代表移動速度,以米為單位,沒寫就是1m。

Time.deltaTime 代表幀的時間差,沒寫的話會變成每幀就跑1m,這差很多。

因為每個幀時間很短,假設是0.03s,那這個幀就只會移動0.03m。

而Rotate的Vector3.up代表以Vector3.up方向為旋轉軸。

官網教學:

 

 
 

  按個讚!~支持本站!~

FB推薦載入中