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

你能告诉我该怎么做吗? –