Erstellen eines Objekts basierend auf einem Prefab aus einem Skript

Diese Seite wurde aktualisiert :
Erstellungsdatum der Seite :

Verifizierungsumgebung

Fenster
  • Windows 11
Unity-Editor
  • 2021.3.3f1
Eingabesystem-Paket
  • 1.3.0

Voraussetzungen für diesen Tipp

Die folgenden Einstellungen wurden im Vorfeld als Prämisse für die Beschreibung dieses Tipps vorgenommen.

Erstellen eines Objekts basierend auf einem Prefab in einem Skript

In den vorherigen Tipps haben wir Objekte aus dem Prefab in der Ansicht platziert, aber in diesem Fall platzieren wir eine vorgegebene Anzahl von Objekten und starten das Spiel. Einige Spiele möchten jedoch möglicherweise Objekte dynamisch hinzufügen, während das Spiel ausgeführt wird. In diesem Fall müssen Sie es aus dem Prefab im Skript hinzufügen.

Erstellung von Proben

Platzieren Sie nach dem Bereitstellen des neuen Projekts die Schaltfläche. Versuchen wir, jedes Mal, wenn wir auf die Schaltfläche klicken, ein Objekt aus dem Prefab zu generieren.

Erstellen Sie ein Prefab. Dies ist das gleiche Verfahren wie bei den vorherigen Tipps.

Erstellen Sie ein Skript, um das Objekt hinzuzufügen, wenn Sie das nächste Mal auf die Schaltfläche klicken. ButtonEvent Lassen Sie den Namen als .

using UnityEngine;

public class ButtonEvent : MonoBehaviour
{
  [SerializeField] private GameObject SpritePrefab;

  public void OnClick()
  {
    // Instantiate にプレハブを渡すとそれをもとに新しいオブジェクトを生成する
    var obj = Instantiate(SpritePrefab);

    // 配置位置はランダムに
    obj.transform.localPosition = new Vector3(Random.value * 6 - 3, Random.value * 6 - 3);
  }
}

GameObject Definieren Sie das Feld so, dass Sie im Voraus festlegen können, auf welcher Grundlage das Prefab generiert werden soll.

Instantiate Sie können eine Methode übergeben, um ein GameObject neues Objekt basierend auf diesem Objekt zu erstellen.

Die Position des erstellten Objekts wird zum Ursprung, und egal wie viele Objekte erstellt werden, die Objekte überlappen sich und sind schwer zu verstehen, sodass die Position nach der Erstellung zufällig festgelegt wird. Der Wert für die Positionsanpassung ist angemessen, da es sich um ein Beispiel handelt.

Hängen Sie das Skript an EventSystem an.

GameObject gesetzt ist, also legen Sie das Prefab hier ab.

Wenn auf die Schaltfläche geklickt wird, wird OnClick die Methode aufgerufen.

Beispielausführung

Führen Sie nach der Erstellung das Spiel aus und klicken Sie auf die Schaltfläche. Jeder Klick sollte ein Objekt erzeugen.

Da es auf der Grundlage des Prefabs generiert wird, wird das generierte Objekt natürlich entsprechend diesem Wert generiert, wenn sich der Wert des Prefabs ändert.