2016-06-07 1 views
0

Je travaille sur un projet de jeu dans lequel je veux déplacer automatiquement un objet vers l'avant et vers la gauche ou vers la droite en même temps que le personnage. J'utilise le script simple suivant pour déplacer l'objet vers l'avant:Déplacer automatiquement un objet vers l'avant, vers la gauche ou vers la droite en même temps

void Start() { 

    } 

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

} 

Je ne sais pas comment faire le reste.

+0

Vous voudrez peut-être envisager de demander aussi ce sur au [Game Development] (http://gamedev.stackexchange.com/). –

+0

ok, merci ... –

Répondre

0

Vous êtes sur la bonne voie jusqu'à présent, mais je suppose que vous voulez que le mouvement à gauche et à droite se produise en fonction de l'entrée de l'utilisateur?

Ceci est un exemple de code qui représenterait l'entrée de gauche et de droite, mais il peut être nécessaire de le personnaliser pour votre cas d'utilisation.

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);  
} 

Exemple d'une méthode que vous pouvez utiliser pour faire tourner le lecteur:

Pour que votre lecteur tourne de 90 degrés, vous aurez besoin de faire pivoter l'objet réel. Sur la base de votre logique/gameplay, vous pourriez faire quelque chose d'aussi simple que:

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); 
    } 
} 

Pour Accéléromètre Entrée:

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

Merci mais ce n'est pas ce que je veux exactement faire, je veux que mon objet bouge comme le personnage de run.Means il va aller de l'avant et de gauche/droite en même temps en utilisant mon téléphone mouvement. –

+0

Ah, désolé, je viens de me rappeler comment la course du temple pivote plutôt que de se déplacer à droite ou à gauche. – ejsd1989

+0

Pouvez-vous me dire comment faire cela? –