Menu
CoddyTech

Zufälliges Erzeugen

Teil des Abschnitts Unity-Scripting: Grundlagen der Unity-Journey von Coddy. Lektion 68 von 85.

Random.Range(min, max) wählt eine Zufallszahl aus. Welche Werte zurückgegeben werden können, hängt vom Typ der Zahlen ab, die du übergibst. Bei Floats kann jeder Wert von min bis max herauskommen, einschließlich beider Grenzen. Bei Ints wird max selbst ausgeschlossen. Für einen Würfelwurf fragst du 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 ergibt, selbst wenn du das Ergebnis in einem Float speicherst. Schreibe Random.Range(-5f, 5f), um einen beliebigen Wert dazwischen zu erhalten.

Für Punkte und Richtungen im 3D-Raum hat 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 ein Punkt, der in eine beliebige Richtung bis zu 2 Einheiten entfernt liegt, auch nach oben und unten.

challenge icon

Aufgabe

Mittel

Bei jedem Klick fällt eine Kiste von einer zufälligen Stelle über dem Boden herunter.

  1. Lege innerhalb des Klick-if float x = Random.Range(-4f, 4f); fest und gehe bei float z genauso vor.
  2. Rufe Instantiate(cratePrefab, new Vector3(x, 5, z), Quaternion.identity); auf.

Drücke „Spielen“ und klicke ein paar Mal: Die Kisten fallen an neuen Stellen herunter. Drücke dann „Prüfen“.

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

Alle Lektionen in Unity-Scripting: Grundlagen

Übe selbstständig: Unity-Playground