Menu
CoddyTech

Additionner des vecteurs

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

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 déplacement. 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 donne (3, 0, 0), une tempête, et move * Time.deltaTime transforme un déplacement par seconde en déplacement pour cette image. La soustraction fonctionne également composante par composante, et a - b est le déplacement qui mène du point b au point a. Il n’y a pas de * entre deux vecteurs : roll * wind ne compile pas.

challenge icon

Défi

Facile

La rivière emporte le bateau, et la flèche vers le haut ajoute son moteur.

  1. Dans Update(), commence par Vector3 move = current;.
  2. Tant que Input.GetKey(KeyCode.UpArrow) est vrai, ajoute motor à move avec +=.
  3. Ajoute move * Time.deltaTime à transform.position.

Appuie sur « Jouer » : le bateau dérive vers la droite et traverse la rivière tant que tu maintiens la flèche vers le haut. Ensuite, clique sur « Vérifier ».

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 entraîne toujours le bateau.
        // Tant que la flèche vers le haut est maintenue enfoncée, le moteur pousse aussi.
    }
}

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

Entraînez-vous par vous-même : Playground Unity