Menu
CoddyTech

Landen oder verfehlen

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

Diese Herausforderung vervollständigt das Turmspiel und den ersten Abschnitt des Kurses: einen Kran, einen fallenden Block und einen Landetest mit Mathf.Abs.

challenge icon

Aufgabe

Schwer

Lass jeden Block auf dem Stapel landen oder herunterfallen.

  1. Wenn der fallende Block bis auf y + 1 von top heruntergefallen ist und höchstens 1 von tops x entfernt ist, setze sein y genau auf diesen Wert, mache ihn zu top, leere falling und protokolliere "Stack: " + count.
  2. Andernfalls zerstöre ihn unterhalb von y = -3, leere falling und protokolliere Missed!.

Drücke auf „Spielen“ und stapel die Blöcke: Bei jeder Landung wird die Höhe protokolliert. Drücke anschließend auf „Prüfen“.

Probier es selbst

using UnityEngine;

public class Crane : MonoBehaviour
{
    [SerializeField] private GameObject blockPrefab;
    [SerializeField] private Transform top;
    [SerializeField] private float craneSpeed = 3f;
    [SerializeField] private float craneEdge = 4f;
    [SerializeField] private float fallSpeed = 7f;

    private float direction = 1f;
    private Transform falling;
    private int stack;

    void Update()
    {
        transform.position += new Vector3(direction * craneSpeed * Time.deltaTime, 0f, 0f);
        if (transform.position.x > craneEdge) direction = -1f;
        if (transform.position.x < -craneEdge) direction = 1f;

        bool drop = Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButtonDown(0);
        if (drop && falling == null)
        {
            Vector3 spot = new Vector3(transform.position.x, transform.position.y - 1f, 0f);
            falling = Instantiate(blockPrefab, spot, Quaternion.identity).transform;
        }

        if (falling != null)
        {
            falling.position += Vector3.down * fallSpeed * Time.deltaTime;
            // Auf dem Stapel landen: die nächste Lektion.
        }
    }
}
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 Unity-Scripting: Grundlagen

Übe selbstständig: Unity-Playground