Menu
CoddyTech

Turmbauer

Teil des Abschnitts Grundlagen des Scripting in Unity der Unity-Journey von Coddy. Lektion 67 von 67.

Ein Kran bewegt sich über einer Basis hin und her. Bei jedem Drücken der Leertaste oder jedem Klick fällt ein Block senkrecht vom Kran herunter. Ein Block, der oben auf dem Stapel landet, bleibt dort, und der nächste Block muss darauf landen. Ein Block, der danebenfällt, fällt herunter. Die Höhe des Stapels ist die Punktzahl.

Schreibe das ganze Spiel in ein einziges Skript, Crane, auf dem Kran.

challenge icon

Aufgabe

Schwer

Schreibe das Skript Crane auf den Kran. Lege im Inspector blockPrefab (das Block-Prefab), top (die Base, also die bisherige Spitze des Stapels), craneSpeed (3), craneEdge (4) und fallSpeed (7) fest.

  • Der Kran bewegt sich mit craneSpeed Einheiten pro Sekunde entlang der x-Achse. Sobald er craneEdge überschreitet, dreht er um und fährt nach links zurück. Sobald er -craneEdge unterschreitet, dreht er um und fährt nach rechts zurück.
  • Mit der Leertaste oder einem Linksklick lässt du einen Block an der x-Position des Krans fallen, 1 Einheit unterhalb des Krans. Solange ein Block fällt, haben weitere Eingaben keine Wirkung.
  • Der fallende Block bewegt sich mit fallSpeed Einheiten pro Sekunde nach unten.
  • Wenn seine y-Position auf tops y-Position plus 1 sinkt und seine x-Position weniger als 1 von tops x-Position entfernt ist, landet er: Setze seine y-Position genau auf tops y-Position plus 1, mache ihn zum neuen top und gib die Höhe des Stapels als Stack: 1, Stack: 2 usw. aus.
  • Ein Block, der nicht landet, fällt weiter. Unterhalb von y = -3 zerstörst du ihn und gibst Missed! aus.

Drücke Play und baue einen Turm, dann Check.

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;

    void Update()
    {
    }
}
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