2015-10-01 1 views
0

je le sprite 2D en mouvement automatiquement, et se demande comment augmenter la vitesse de celle-ci:Comment augmenter la vitesse de cette transform.translate

transform.Translate(0.10F, -0.03F, 0 * Time.deltaTime); 

ont essayé définissant une variable de vitesse et faire ensuite:

transform.Translate(0.1f,-0.05f,speed*Time.deltaTime); 

mais cela finit par faire l'arrière-plan dans la fenêtre de jeu disparaît (parce que le joueur se déplace l'arrière plan 2d par l'intermédiaire de l'axe z), tandis que dans la fenêtre de scène, le joueur se déplace sur la carte, mais à la même vitesse

+0

dont transformer le composant est-ce? –

+0

Le sprite que j'essaie de déplacer – lego116

+0

Je ne connais pas les paramètres de cette méthode, mais sur votre top, vous passez toujours en 0. Je pense que votre 'Time.deltaTime' est un nombre si ridiculement petit (probablement bien inférieur à .1) que tout ce que vous multipliez n'a aucun effet. – krillgar

Répondre

0

Si vous voulez 2D, vous ne voulez pas que les sprites se déplacent dans l'axe z (cela peut être utile uniquement pour l'ordre de dessin). Les joueurs doivent augmenter la vitesse sur l'axe x ou y. Donc, dans votre code, vous pourriez faire quelque chose comme ça.

transform.Translate(xSpeed, ySpeed, 0); 

Si vous voulez dessiner quelque chose derrière ce sprite, fournissez juste une valeur inférieure à la valeur z de ceci. Je suppose que vous appelez cela dans votre méthode de mise à jour. Ici xSpeed et ySpeed sont des flotteurs. Les valeurs négatives déplacent l'objet dans la direction opposée.

0

Vous pouvez appliquer le speed-Translate en le multipliant par le traduire vecteur, newPosition dans cet exemple:

void Update() { 
    float speed = 3f; 
    Vector3 newPosition = new Vector3 (.1f, -.05f, 0f); 
    transform.Translate (newPosition * Time.deltaTime * speed); 
}