Menu
CoddyTech

Addition de vecteurs

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

Un Vector3 peut être stocké dans une variable, et deux vecteurs s’additionnent avec + : x s’ajoute à x, y à y et z à z. C’est ainsi que deux poussées se combinent en un seul mouvement. Ce ballon de plage roule vers l’avant à 2 unités par seconde tandis que le vent le pousse de 1 unité par seconde vers la droite :

Vector3 roll = new Vector3(0, 0, 2);
Vector3 wind = new Vector3(1, 0, 0);

void Update()
{
    Vector3 move = roll + wind;   // (1, 0, 2)
    transform.position += move * Time.deltaTime;
}

Multiplier un vecteur par un nombre multiplie chacune de ses composantes : wind * 3 vaut (3, 0, 0), une tempête, et move * Time.deltaTime transforme un mouvement par seconde en mouvement pour cette image. La soustraction fonctionne aussi composante par composante, et a - b est le déplacement qui mène du point b au point a. Il n’existe pas d’opérateur * entre deux vecteurs : roll * wind ne compile pas.

challenge icon

Défi

Facile

Le current d’une rivière emporte toujours le bateau. Tant que la flèche vers le haut est maintenue, le motor pousse aussi le bateau, en plus du courant. Les deux représentent des déplacements en unités par seconde, définis dans l’Inspector : le courant vaut (1, 0, 0) et le moteur (0, 0, 3).

Appuie sur Play et traverse la rivière avec la flèche vers le haut, puis appuie sur Check.

Essayez vous-même

using UnityEngine;

public class Boat : MonoBehaviour
{
    public Vector3 current = new Vector3(0, 0, 0);
    public Vector3 motor = new Vector3(0, 0, 0);

    void Update()
    {
        // Le courant emporte toujours le bateau.
        // Tant que la flèche vers le haut est maintenue enfoncée, le moteur propulse aussi le bateau.
    }
}
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