Menu
CoddyTech

Espaces local et monde

Fait partie de la section Les bases du scripting dans Unity du Journey Unity de Coddy. Leçon 19 sur 67.

Un objet possède ses propres directions, en plus de celles du monde. transform.forward indique où pointe le nez de l'objet (la flèche bleue dans la vue Scene de Unity), sous la forme d'un vecteur du monde d'une unité de long ; transform.right et transform.up correspondent à ses propres directions droite et haut. Faites tourner l'objet et elles tourneront avec lui. Cet avion en papier est tourné de 90 degrés autour de y dans la scène ; il vole donc le long de l'axe x du monde, dans la direction où il pointe :

public float speed = 4f;

void Update()
{
    transform.position += transform.forward * speed * Time.deltaTime;
}

transform.Translate(Vector3.forward * speed * Time.deltaTime) fait la même chose, car Translate interprète son vecteur dans l'espace propre de l'objet : dans cet espace, Vector3.forward désigne la direction avant de l'objet. Passez Space.World en deuxième argument pour utiliser à la place les axes du monde ; ainsi, transform.Translate(Vector3.forward * speed * Time.deltaTime, Space.World) déplace l'objet le long de l'axe z du monde, quelle que soit la direction vers laquelle pointe l'avion.

transform.Rotate fait également tourner l'objet autour de ses propres axes. Vu d'en haut, un angle positif autour de y fait tourner un objet debout vers sa droite, et un angle négatif vers sa gauche ; son transform.forward tourne avec lui.

challenge icon

Défi

Facile

Donne au tank des commandes : la flèche droite le fait tourner vers la droite et la flèche gauche vers la gauche, autour de son axe y à raison de turn degrés par seconde. La flèche haut le fait avancer dans la direction où il fait face, à raison de speed unités par seconde. Le fait de tourner seul ne le déplace pas.

Appuie sur Play, tourne et avance, puis appuie sur Check.

Essayez vous-même

using UnityEngine;

public class Tank : MonoBehaviour
{
    public float speed = 3f;
    public float turn = 90f;

    void Update()
    {
        // Flèches droite/gauche : pivoter autour de l’axe y. Flèche haut : avancer dans la direction vers laquelle le char est orienté.
    }
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Les bases du scripting dans Unity