Menu
CoddyTech

Eltern und Kinder

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

In der Hierarchy wird ein Objekt, das auf ein anderes gezogen wird, zu dessen child und wird eingerückt unter seinem parent angezeigt. Ein Child bewegt, dreht und skaliert sich mit seinem Parent: Bewege den Parent, und jedes Child kommt mit, ganz ohne Code auf den Children.

Unity speichert die Position eines Childs relativ zu seinem Parent. transform.localPosition ist dieser Versatz, gemessen vom Parent aus; transform.position ist die Position in der Welt. Dieser Reiter ist ein Child eines Pferdes, und sein Skript setzt ihn 1 Einheit über die Mitte des Pferdes und eine halbe Einheit nach hinten, egal, wo das Pferd steht:

void Start()
{
    transform.localPosition = new Vector3(0, 1, -0.5f);
}

Wenn das Pferd bei (4, 0.5, 2) steht, lautet die position des Reiters (4, 1.5, 1.5), während seine localPosition bei (0, 1, -0.5) bleibt. Wenn das Pferd weitergeht, ändert sich die position, die localPosition hingegen nicht. Der Versatz wird entlang der eigenen Achsen des Parents gemessen. Wenn sich der Parent also dreht oder skaliert wird, dreht und skaliert sich der Versatz mit ihm. Bei einem Objekt ohne Parent sind localPosition und position identisch.

challenge icon

Aufgabe

Mittel

Platziere die Flagge am Fuß des Masts, gemessen von ihrem Schiff aus.

  1. In Start() werden die Zahlen (0.6, 1, 0) vom Schiff aus gemessen, dem übergeordneten Objekt der Flagge.
  2. Ändere in dieser Zeile transform.position in transform.localPosition.

Drücke „Spielen“: Die Flagge befindet sich am Fuß des Masts auf dem Schiff. Dann „Prüfen“.

Probier es selbst

using UnityEngine;

public class Hoist : MonoBehaviour
{
    public float climb = 1f;

    void Start()
    {
        // Der Fuß des Masts: 0.6 nach rechts und 1 nach oben, gemessen vom Ship aus
        transform.position = new Vector3(0.6f, 1, 0);
    }

    void Update()
    {
        // Solange die Pfeiltaste nach oben gedrückt wird, klettere, bis die Höhe über dem Ship 4 beträgt
    }
}

Alle Lektionen in Unity-Scripting: Grundlagen

Übe selbstständig: Unity-Playground