Generieren Sie Zufallszahlen in Unity3D

Aimen Fatima 15 Februar 2024
Generieren Sie Zufallszahlen in Unity3D

In diesem Tutorial werden die Methoden zum Generieren von Zufallszahlen in unity3d erläutert. Wir werden Zufallszahlengeneratoren mit den Rückgabetypen float und int implementieren und ihr Ausführungsverhalten anhand von Beispielen untersuchen.

Zufallszahlengenerator in Unity3D

Die UnityEngine.Random bietet eine eingebaute Methode, Range(), um Zufallszahlen zu generieren. Leider wurde die Methode Range() für die Datentypen int und float in unity3d überladen.

Sie können diese Methode aufrufen, indem Sie die Datentypen float oder int als Parameter übergeben. Die Parameter dieser Funktion definieren den Bereich der Zufallszahlen, indem sie eine Unter- und Obergrenze angeben.

Hier ist die Definition der Funktion UnityEngine.Random.Range für den Rückgabetyp float:

public static float Range(float minValue, float maxValue);

Die Methode Range() gibt eine zufällige float-Zahl innerhalb von [minValue to maxValue] zurück. Diese Methode tauscht die Werte, wenn maxValue kleiner als minValue ist.

Die Methode float Range() enthält Unter- und Obergrenzen. Zum Beispiel gibt Random.Range(1.2f,5.2f) eine Zahl zwischen 1.2 und 5.2 zurück, inklusive der Extrema.

Hier ist die Definition der Funktion UnityEngine.Random.Range für den Rückgabetyp int:

public static int Range(int minValue, int maxValue);

Diese Methode gibt eine zufällige ganze Zahl innerhalb des Bereichs [minValue to maxValue] zurück. Die folgenden Verhaltensweisen zeigen, wie diese Methode ausgeführt wird:

  • Die Obergrenze ist in dieser Methode nicht enthalten. Zum Beispiel gibt Random.Range(-5, 5) einen Wert zwischen -5 und 4 zurück.
  • Wenn sowohl minValue als auch maxValue gleich sind, wird die Obergrenze ausgeschlossen und die Methode gibt die Untergrenze zurück, d. h. minValue.
  • Wenn maxValue kleiner als minValue ist, werden die Zahlen automatisch vertauscht.

Wir werden diese beiden Methoden im Unity3D-Projekt implementieren. Es folgt die vollständige Demonstration der Implementierung dieser Funktionen. Aber lassen Sie uns zuerst den Prozess Schritt für Schritt verfolgen.

  • Neues Projekt erstellen

    Erstellen Sie ein neues Unity-Projekt. Standardmäßig wird eine Beispielszene erstellt.

  • Erstellen Sie ein 3D-Spielobjekt

    Erstellen Sie ein beliebiges 3D-Spielobjekt in der Szene, indem Sie mit der rechten Maustaste in das Hierarchiefenster klicken.

    Erzeuge Zufallszahlen in unity3d - 3D-Spielobjekt

  • Erstellen Sie ein C#-Skript, um den Zufallszahlengenerator float zu generieren

    Erstellen Sie ein neues C#-Skript, indem Sie mit der rechten Maustaste in das Projektfenster klicken. Schreiben Sie dann den folgenden Codeausschnitt in das neu erstellte Skript.

    Erzeuge Zufallszahlen in unity3d - script

    Das folgende Code-Snippet zeigt einen float-Zufallszahlengenerator. Dieses Code-Snippet bewegt das gameObject in die x-Richtung, indem es eine Zufallszahl hinzufügt, die im Bereich von -5.0 und 5.0 generiert wird.

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class RandomNumberGenerator : MonoBehaviour {
      public GameObject gameObject;
      float xOffset = 0.0f;
    
      void OnGUI() {
        xOffset = Random.Range(-5.0f, 5.0f);
        if (GUI.Button(new Rect(10, 300, 100, 50), "MOVE")) {
          gameObject.transform.position =
              new Vector3(gameObject.transform.position.x + xOffset, gameObject.transform.position.y,
                          gameObject.transform.position.z);
        }
      }
    }
    
  • Skript an Spielobjekt anhängen

    Hängen Sie das Skript an das in der Szene erstellte Spielobjekt an. Übergeben Sie dann das Spielobjekt an das Skript, indem Sie es aus der Hierarchie ziehen.

    Zufallszahlen in unity3d generieren - Float-Skript

  • Spiel ausführen

    Führen Sie das Spiel aus und drücken Sie in der Spielansicht auf die Schaltfläche Verschieben, um die Position des Spielobjekts zu ändern.

  • Erstellen Sie ein leeres Spielobjekt

    Erstellen Sie das leere Spielobjekt in der Szene, um den Zufallszahlengenerator vom Integer-Typ zu implementieren.

    Erzeuge Zufallszahlen in unity3d - leeres Spielobjekt

  • Erstellen Sie ein neues C#-Skript, um den Zufallszahlengenerator int zu generieren

    Erstellen Sie erneut ein neues C#-Skript und schreiben Sie den folgenden Code in das Skript. Dieser Code-Fence generiert eine Zufallszahl zwischen 1 und 4 (ganzzahlige Zahlen) und druckt die absteigend geordneten Werte, inklusive 0.

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class IntRNG : MonoBehaviour {
      void Start() {
        int x = Random.Range(1, 5);
        for (int i = x; i >= 0; i--) {
          print(i);
        }
      }
    }
    
  • Skript an leeres Objekt anhängen

    Hängen Sie das obige Skript an ein leeres Spielobjekt an, das in der Szene erstellt wurde.

    Erzeuge Zufallszahlen in unity3d - int script

  • Spiel ausführen

    Führen Sie das Spiel aus und überprüfen Sie das Konsolenfenster, um die Ausgabe zu sehen. Weitere Einzelheiten finden Sie unter Unity3D-Zufallszahlengenerator.