2016-06-07 136 views
0

我正在製作一個遊戲項目,我希望自動移動對象向前以及向左或向右移動,就像廟宇跑步角色一樣使用以下簡單腳本將對象向前移動:同時向前,向左,向右自動移動對象

void Start() { 

    } 

void Update() { 
    transform.Translate(Vector3.forward *Time.deltaTime); 
    transform.Translate(Vector3.left * Time.deltaTime, Space.World); 

} 

我不知道該怎麼做。

+0

你可能想也考慮在[遊戲開發]問這個了( http://gamedev.stackexchange.com/)。 –

+0

好的,謝謝... –

回答

0

到目前爲止您還處於正確的軌道,但我認爲您希望根據用戶輸入發生左右移動?

這是一個將考慮左右輸入的代碼示例,但它可能需要根據您的用例進行自定義。

public float movementSpeed = 6f; 

void Update() 
{ 
    transform.Translate(Vector3.forward * Time.deltaTime); 
    //Strafe your object Left and right based on user input      
    transform.Translate(Vector3.right * Time.deltaTime * Input.GetAxis("Horizontal") * movementSpeed);  
} 

,你可以使用旋轉播放器的方法的例子:

爲了讓您的播放器轉90度,你將需要旋轉實際的對象。根據您的實際邏輯/遊戲,你可以做簡單的東西如:

void Update() { 
    transform.Translate(Vector3.forward * Time.deltaTime); 
    //Strafe your object Left and right based on user input      
    transform.Translate(Vector3.right * Time.deltaTime * Input.GetAxis("Horizontal") * movementSpeed);  
    if (Input.GetKeyDown("q")) { 
     this.transform.Rotate(0, -90, 0); 
    } 
    if (Input.GetKeyDown("e")) { 
     this.transform.Rotate(0, 90, 0); 
    } 
} 

加速度計輸入:

void Update() { 
    transform.Translate(Vector3.forward * Time.deltaTime); 
    if (Input.acceleration.x > 0) { 
     this.transform.Rotate(0, 90, 0); 
    } 
    else if (Input.acceleration.x < -0) { 
     this.transform.Rotate(0, -90, 0); 
    } 
} 
+0

謝謝,但這不是我真正想做的事情,我希望我的對象像廟宇運行字符一樣移動。它意味着它會同時使用我的手機向前和向左/向右移動運動。 –

+0

啊,對不起,我只記得寺廟如何轉動而不是左右移動。 – ejsd1989

+0

你能告訴我該怎麼做嗎? –

相關問題