Een object maken op basis van een Prefab vanuit een script
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.