Menu
CoddyTech

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.

challenge icon

Aufgabe

Mittel

Bei 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
        }
    }
}
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