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.
Aufgabe
EinfachDer Fluss trägt das Boot, und der Pfeil nach oben ergänzt seinen Motor.
- Beginne in
Update()mitVector3 move = current;. - Solange
Input.GetKey(KeyCode.UpArrow)wahr ist, addiere mit+=motorzumove. - Addiere
move * Time.deltaTimezutransform.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
1C#-Grundlagen in Unity
Hallo, UnityVariablenDezimalzahlen brauchen ein fText in der KonsoleVariablen, die sich etwas merkenIf und ElseZahlen vergleichenRückblick: Münzsammler7Schleifen und Methoden
Wiederholen mit forSchleifen in SchleifenEine Methode schreibenMethoden mit RückgabewertArraysRückblick: Treppe10Dinge finden
Nach Namen suchenTagsNach Typ suchenReferenzen schlagen SuchenUnitys NullRückblick: nächste Münze13Projekt: Weiche den Blöcken aus
Der LäuferBlöcke vom Himmel2Bring es in Bewegung
Platziere den WürfelBewege ihn in jedem FrameDrehe ihn jede SekundeSteuere mit den TastenRückblick: Fahre den Würfel5Vektoren
Vektoren addierenRichtungenLokaler und globaler RaumDiagonale GeschwindigkeitAbstand zwischen ObjektenVector3 ist eine StrukturRückblick: Drohnenpilot8GameObjects und Komponenten
Referenzen im InspectorEine Komponente abrufenFehlende KomponentenEine Komponente hinzufügenRequireComponentEin- und AusblendenRückblick: Lichtschalter11Prefabs und Erzeugen von Instanzen
Prefabs und InstantiateNach Zeitintervall erzeugenIn einem Raster erzeugenListen von ObjektenDas Neueste zurücknehmenZerstörenZufälliges ErzeugenRückblick: Feuerwerk14Abschließende Herausforderungen
MünzmagnetDie Straße überquerenStraßenverkehrTurmbauerLanden oder verfehlen3Der Inspector
Inspector-FelderSerializeFieldFließkommazahlen und MathfInspector-AttributeRückblick: Aufzug6Transformationen und Hierarchie
Eltern und KinderHisse die FlaggeSkalierungDinge anschauenAuf einen Punkt zubewegenRückblick: Mond in Umlaufbahn9Projekt: Fang den Stern
Der FängerEin fallender Stern12Der Lebenszyklus eines Skripts
Awake und StartUpdate und LateUpdateOnEnable und OnDisableDie Reihenfolge im LebenszyklusRückblick: Lifecycle LoggerÜbe selbstständig: Unity-Playground