Menu
CoddyTech

Nach Timer spawnen

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

Ein Spawner, der alle paar Sekunden etwas erzeugt, benötigt einen Timer. Time.deltaTime ist die Zeit, die der letzte Frame gedauert hat. Wenn du sie bei jedem Update() in einem Feld aufsummierst, erhältst du die Anzahl der vergangenen Sekunden. Sobald die Summe das Intervall erreicht, erzeugst du ein Objekt und ziehst das Intervall von der Summe ab.

Dieser Springbrunnen wirft alle halbe Sekunde einen Wassertropfen:

public GameObject dropPrefab;
public float interval = 0.5f;
float timer;

void Update()
{
    timer += Time.deltaTime;
    if (timer >= interval)
    {
        Instantiate(dropPrefab, transform.position, Quaternion.identity);
        timer -= interval;
    }
}

timer -= interval behält den Rest bei: Wenn der Frame bei 0.51 Sekunden endete, beginnt die nächste halbe Sekunde bei 0.01 zu zählen, und die Tropfen bleiben im Takt. timer = 0 würde diesen Rest verwerfen, sodass jeder Tropfen etwas später käme und sich die Verzögerung im Laufe eines langen Spiels summieren würde. timer ist privat, weil niemand es im Inspector setzen muss.

challenge icon

Aufgabe

Mittel

Der Dropper soll alle interval Sekunden eine Box fallen lassen (im Inspector steht 2): die erste Box 2 Sekunden nach dem Drücken von Play, dann alle 2 Sekunden eine weitere.

  • Erzeuge jede Box an der Position des Droppers, ohne Rotation.
  • Gib nach jeder Box ihre Nummer aus: Box 1, Box 2 und so weiter.

Drücke Play und beobachte, wie der Stapel wächst, dann Check.

Probier es selbst

using UnityEngine;

public class BoxDropper : MonoBehaviour
{
    public GameObject boxPrefab;
    public float interval = 1f;

    void Update()
    {
        // Alle interval Sekunden: eine Box fallen lassen und "Box 1", "Box 2"... protokollieren
    }
}
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