Een object maken op basis van een Prefab vanuit een script

Pagina bijgewerkt :
Aanmaakdatum van pagina :

Verificatieomgeving

Ramen
  • Voor Windows 11
Unity Editor
  • 2021.3.3f1
Input systeem pakket
  • 1.3.0

Vereisten voor deze tip

De volgende instellingen zijn vooraf gemaakt als uitgangspunt voor de beschrijving van deze tip.

Een object maken op basis van een Prefab in een script

In de vorige Tips plaatsten we objecten van de Prefab naar de weergave, maar in dit geval plaatsen we een vooraf bepaald aantal objecten en starten we het spel. Sommige games willen echter dynamisch objecten toevoegen terwijl de game wordt uitgevoerd. In dat geval zul je het vanuit de prefab in het script moeten toevoegen.

Voorbeeld maken

Nadat u het nieuwe project hebt geïmplementeerd, plaatst u de knop. Laten we proberen een object uit de prefab te genereren elke keer dat we op de knop klikken.

Maak een prefab. Dit is dezelfde procedure als de vorige tips.

Maak een script om het object toe te voegen wanneer u de volgende keer op de knop klikt. ButtonEvent Laat de naam staan 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 Definieer het veld zodat u vooraf kunt instellen op welke prefab moet worden gegenereerd.

Instantiate U kunt een methode doorgeven om een GameObject nieuw object te maken op basis van dat object.

De positie van het gemaakte object wordt de oorsprong, en het maakt niet uit hoeveel objecten er worden gemaakt, de objecten overlappen elkaar en het is moeilijk te begrijpen, dus de positie wordt willekeurig ingesteld na het maken. De positieaanpassingswaarde is geschikt omdat het een steekproef is.

Koppel het script aan EventSystem.

GameObject is ingesteld dus drop de prefab hier.

Wanneer op de knop wordt geklikt, wordt OnClick de methode aangeroepen.

Voorbeelduitvoering

Eenmaal gemaakt, voer je het spel uit en klik je op de knop. Elke klik moet een object genereren.

Natuurlijk, omdat het wordt gegenereerd op basis van de prefab, als de waarde van de prefab verandert, wordt het gegenereerde object gegenereerd volgens die waarde.