Lokaler und globaler Raum
Teil des Abschnitts Grundlagen des Scripting in Unity der Unity-Journey von Coddy. Lektion 19 von 67.
Ein Objekt hat seine eigenen Richtungen ebenso wie die der Welt. transform.forward gibt an, wohin die Nase des Objekts zeigt (der blaue Pfeil in der Scene-Ansicht von Unity), als Weltvektor mit einer Länge von einer Einheit; transform.right und transform.up sind seine eigenen Richtungen nach rechts und oben. Drehst du das Objekt, drehen sie sich mit. Dieses Papierflugzeug ist in der Szene um 90 Grad um y gedreht, daher fliegt es entlang der x-Achse der Welt, in die Richtung, in die es zeigt:
public float speed = 4f;
void Update()
{
transform.position += transform.forward * speed * Time.deltaTime;
}transform.Translate(Vector3.forward * speed * Time.deltaTime) macht dasselbe, denn Translate interpretiert seinen Vektor im lokalen Raum des Objekts: Dort bedeutet Vector3.forward die Vorwärtsrichtung des Objekts. Übergib Space.World als zweites Argument, und stattdessen werden die Achsen der Welt verwendet. transform.Translate(Vector3.forward * speed * Time.deltaTime, Space.World) bewegt das Objekt also entlang der z-Achse der Welt, unabhängig davon, in welche Richtung das Flugzeug zeigt.
transform.Rotate dreht das Objekt ebenfalls um seine eigenen Achsen. Von oben betrachtet dreht ein positiver Winkel um y ein aufrecht stehendes Objekt nach rechts und ein negativer nach links, und sein transform.forward dreht sich mit.
Aufgabe
EinfachGib dem Panzer eine Panzersteuerung: Der rechte Pfeil dreht ihn um seine y-Achse nach rechts, und der linke Pfeil dreht ihn um seine y-Achse nach links, mit turn Grad pro Sekunde. Der Pfeil nach oben fährt ihn in die Richtung, in die er zeigt, mit speed Einheiten pro Sekunde vorwärts. Allein das Drehen bewegt ihn nicht.
Drücke Play, drehe und fahre, und drücke dann Check.
Probier es selbst
using UnityEngine;
public class Tank : MonoBehaviour
{
public float speed = 3f;
public float turn = 90f;
void Update()
{
// Pfeiltasten rechts/links: um die y-Achse drehen. Pfeiltaste nach oben: in die Richtung fahren, in die der Panzer zeigt.
}
}
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