2016-06-07 2 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

Можете ли вы рассказать мне, как это сделать? –