Erstellen eines Objekts basierend auf einem Prefab aus einem Skript
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.