Zufälliges Spawnen
Teil des Abschnitts Grundlagen des Scripting in Unity der Unity-Journey von Coddy. Lektion 53 von 67.
Random.Range(min, max) wählt eine Zufallszahl aus, und was zurückgegeben werden kann, hängt vom Typ der übergebenen Zahlen ab. Bei Floats kann jeder Wert von min bis max herauskommen, einschließlich beider Grenzen. Bei Ints ist max selbst ausgeschlossen. Ein Würfelwurf fragt daher nach einer Zahl von 1 bis 7:
int roll = Random.Range(1, 7); // 1, 2, 3, 4, 5 oder 6
Debug.Log("You rolled " + roll);Die Int-Version schließt max aus, damit Random.Range(0, names.Length) immer ein gültiger Array-Index ist. Das bedeutet auch, dass Random.Range(-5, 5) nur die ganzen Zahlen von -5 bis 4 liefert, selbst wenn du das Ergebnis in einem Float speicherst. Verwende Random.Range(-5f, 5f) für beliebige Werte dazwischen.
Für Positionen und Richtungen im 3D-Raum bietet Unity zwei fertige Zufallsvektoren. Random.insideUnitSphere ist ein zufälliger Punkt innerhalb einer Kugel mit Radius 1 um (0, 0, 0). Random.onUnitSphere ist ein zufälliger Punkt auf der Oberfläche dieser Kugel und damit eine zufällige Richtung der Länge 1. transform.position + Random.insideUnitSphere * 2f ist eine Position, die bis zu 2 Einheiten in jede Richtung entfernt ist, auch nach oben und unten.
Aufgabe
MittelBei jedem Klick soll eine Kiste von einer zufälligen Stelle über dem Boden fallen:
- x und z: jeweils ein beliebiger Wert von -4 bis 4, nicht nur ganze Zahlen;
- y: 5, damit die Kiste auf den Boden fällt;
- keine Drehung.
Drücke auf Play und klicke ein paar Mal, dann auf Check.
Probier es selbst
using UnityEngine;
public class CrateDropper : MonoBehaviour
{
public GameObject cratePrefab;
void Update()
{
if (Input.GetMouseButtonDown(0))
{
// Lasse eine Kiste an einer zufälligen Position fallen: x und z von -4 bis 4, y = 5
}
}
}
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