Diagonale Geschwindigkeit
Teil des Abschnitts Grundlagen des Scripting in Unity der Unity-Journey von Coddy. Lektion 20 von 67.
Halte die rechte und die obere Pfeiltaste gleichzeitig gedrückt, und die Rohachsen geben die Richtung (1, 0, 1) an. Ihre Länge, .magnitude, ist die Quadratwurzel aus 1 + 1, also etwa 1,41. Ein Läufer, der sich damit bewegt, legt diagonal in derselben Zeit 1,41 Einheiten zurück, in der er geradeaus 1 Einheit zurücklegt: 41 % schneller.
.normalized liefert eine Kopie eines Vektors, die in dieselbe Richtung zeigt und genau 1 Einheit lang ist: (1, 0, 1) wird zu etwa (0,71, 0, 0,71), und (0, 0, 5) wird zu (0, 0, 1). Multipliziert mit einer Geschwindigkeit bewegt sich der Vektor unabhängig von der Richtung mit dieser Geschwindigkeit. Diese Biene fliegt mit 2 Einheiten pro Sekunde zur Blume, egal ob die Blume weit entfernt oder in der Nähe ist; ohne .normalized würde sie umso schneller fliegen, je weiter die Blume entfernt ist:
public Vector3 flower = new Vector3(4, 1, 3);
public float speed = 2f;
void Update()
{
Vector3 toFlower = flower - transform.position;
transform.position += toFlower.normalized * speed * Time.deltaTime;
}Vector3.zero.normalized bleibt (0, 0, 0), da null keine Richtung hat. v.normalized lässt v unverändert; v.Normalize() ändert v selbst.
Aufgabe
EinfachSchreibe die Bewegung des Walkers. Die Pfeiltasten (oder WASD), eingelesen mit den rohen Achsen, bewegen ihn auf der x-Achse nach links und rechts und auf der z-Achse nach oben und unten. Er bewegt sich in jede Richtung mit speed Einheiten pro Sekunde, auch diagonal, startet und stoppt sofort und bleibt stehen, wenn keine Taste gedrückt wird.
Drücke Spielen, gehe geradeaus und diagonal und drücke dann Prüfen.
Probier es selbst
using UnityEngine;
public class Walker : MonoBehaviour
{
public float speed = 4f;
void Update()
{
// Pfeiltasten oder WASD: Bewege dich entlang der x- und z-Achse mit speed, auch diagonal mit derselben Geschwindigkeit.
}
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen des Scripting in Unity
1Dein erstes Skript
Hallo, UnityPlatziere den WürfelBewege dich in jedem FrameDrehe dich jede SekundeSteuere mit den TastenRückblick: Steuere den Würfel4Vektoren
Vektoren addierenRichtungenLokaler und globaler RaumDiagonale GeschwindigkeitAbstand zwischen ObjektenVector3 ist ein StructRückblick: Drohnenpilot7Projekt: Fang den Stern
Der FängerEin fallender Stern10Der Lebenszyklus eines Skripts
Awake und StartUpdate und LateUpdateOnEnable und OnDisableDie Reihenfolge im LebenszyklusRückblick: Lifecycle Logger5Transformationen und Hierarchie
Eltern und KinderSkalierungDinge ansehenAuf einen Punkt zubewegenRückblick: Umlaufender Mond8Dinge finden
Nach Namen findenTagsNach Typ findenReferenzen schlagen FindUnitys NullRückblick: Nächste Münze11Projekt: Weiche den Blöcken aus
Der LäuferFallende Blöcke6GameObjects und Komponenten
Referenzen im InspectorEine Komponente abrufenFehlende KomponentenEine Komponente hinzufügenRequireComponentEin- und AusblendenRückblick: Lichtschalter