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.
Aufgabe
MittelDer 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 2und 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
}
}
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
1Dein erstes Skript
Hallo, UnityPlatziere den WürfelBewege dich in jedem FrameDrehe dich jede SekundeSteuere mit den TastenRückblick: Steuere den Würfel4Vektoren
Vektoren addierenRichtungenLokaler und globaler RaumDiagonale GeschwindigkeitAbstand zwischen ObjektenVector3 ist ein StructRückblick: Drohnenpilot7Projekt: Fang den Stern
Der FängerEin fallender Stern10Der Lebenszyklus eines Skripts
Awake und StartUpdate und LateUpdateOnEnable und OnDisableDie Reihenfolge im LebenszyklusRückblick: Lifecycle Logger5Transformationen und Hierarchie
Eltern und KinderSkalierungDinge ansehenAuf einen Punkt zubewegenRückblick: Umlaufender Mond8Dinge finden
Nach Namen findenTagsNach Typ findenReferenzen schlagen FindUnitys NullRückblick: Nächste Münze11Projekt: Weiche den Blöcken aus
Der LäuferFallende Blöcke6GameObjects und Komponenten
Referenzen im InspectorEine Komponente abrufenFehlende KomponentenEine Komponente hinzufügenRequireComponentEin- und AusblendenRückblick: Lichtschalter9Prefabs und Spawnen
Prefabs und InstantiateNach Timer spawnenIn einem Raster spawnenObjektlistenZerstörenZufälliges SpawnenRückblick: Feuerwerk