Menu
CoddyTech

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.

challenge icon

Aufgabe

Einfach

Gib 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.
    }
}
quiz iconTeste dich selbst

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