Menu
CoddyTech

Hisse die Flagge

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

localPosition kann wie position in jedem Frame gelesen und geändert werden. Ein untergeordnetes Objekt, das an seinem übergeordneten Objekt hinaufklettern soll – etwa eine Kabine an einem Turm oder eine Flagge an einem Mast –, bewegt sich entlang von localPosition und vergleicht seine lokale Höhe mit der Spitze. So funktioniert es unabhängig davon, wo sich das übergeordnete Objekt befindet:

if (transform.localPosition.y < 10)
{
    transform.localPosition += new Vector3(0, 2 * Time.deltaTime, 0);
}

Vergleicht man stattdessen mit position.y, würde sich die Spitze verschieben, sobald das übergeordnete Objekt höher oder tiefer steht.

challenge icon

Aufgabe

Mittel

Zieh die Flagge mit dem Aufwärtspfeil am Mast hoch.

  1. Schreibe in Update() if (Input.GetKey(KeyCode.UpArrow) && transform.localPosition.y < 4).
  2. Füge darin new Vector3(0, climb * Time.deltaTime, 0) zu transform.localPosition hinzu.

Drücke „Spielen“ und halte den Aufwärtspfeil gedrückt: Die Flagge steigt bis zur Spitze des Masts und hält an. Drücke dann „Prüfen“.

Probier es selbst

using UnityEngine;

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

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

    void Update()
    {
        // Solange die Pfeiltaste nach oben gedrückt gehalten wird, steige, bis der Höhenunterschied zum Ship 4 beträgt
    }
}

Alle Lektionen in Unity-Scripting: Grundlagen

Übe selbstständig: Unity-Playground