Menu
CoddyTech

Vektoren addieren

Teil des Abschnitts Unity-Scripting: Grundlagen der Unity-Journey von Coddy. Lektion 24 von 85.

Ein Vector3 kann in einer Variablen gespeichert werden, und zwei davon lassen sich mit + addieren: x wird zu x addiert, y zu y und z zu z. So verbinden sich zwei Schübe zu einer Bewegung. Dieser Wasserball rollt mit 2 Einheiten pro Sekunde vorwärts, während ihn der Wind mit 1 Einheit pro Sekunde nach rechts bläst:

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

Beim Multiplizieren eines Vektors mit einer Zahl wird jeder seiner Bestandteile multipliziert: wind * 3 ist (3, 0, 0), ein Sturm, und move * Time.deltaTime macht aus einer Bewegung pro Sekunde die Bewegung für diesen Frame. Auch die Subtraktion funktioniert komponentenweise, und a - b ist der Schritt, der von Punkt b zu Punkt a führt. Zwischen zwei Vektoren gibt es kein *: roll * wind lässt sich nicht kompilieren.

challenge icon

Aufgabe

Einfach

Der Fluss trägt das Boot, und der Pfeil nach oben ergänzt seinen Motor.

  1. Beginne in Update() mit Vector3 move = current;.
  2. Solange Input.GetKey(KeyCode.UpArrow) wahr ist, addiere mit += motor zu move.
  3. Addiere move * Time.deltaTime zu transform.position.

Drücke auf „Spielen“: Das Boot treibt nach rechts und überquert den Fluss, solange du den Pfeil nach oben gedrückt hältst. Drücke anschließend auf „Prüfen“.

Probier es selbst

using UnityEngine;

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

    void Update()
    {
        // Die Strömung treibt das Boot immer an.
        // Solange die Pfeiltaste nach oben gedrückt wird, treibt auch der Motor das Boot an.
    }
}

Alle Lektionen in Unity-Scripting: Grundlagen

Übe selbstständig: Unity-Playground