Skapa ett objekt baserat på en prefab från ett skript
Verifiering miljö
- Windows
-
- Fönster 11
- Unity-redaktör
-
- 2021.3.3F1
- Paket för inmatningssystem
-
- 1.3.0
Förutsättningar för det här tipset
Följande inställningar har gjorts i förväg som en förutsättning för beskrivningen av detta tips.
Skapa ett objekt baserat på en prefab i ett skript
I de tidigare tipsen placerade vi objekt från prefab till vyn, men i det här fallet placerar vi ett förutbestämt antal objekt och startar spelet. Vissa spel kanske vill lägga till objekt dynamiskt medan spelet körs. I så fall måste du lägga till det från prefab i skriptet.
Skapa exempel
När du har distribuerat det nya projektet placerar du knappen. Låt oss försöka generera ett objekt från prefab varje gång vi klickar på knappen.
Skapa en prefab. Detta är samma procedur som tidigare tips.
Skapa ett skript för att lägga till objektet nästa gång du klickar på knappen. ButtonEvent
Lämna namnet som .
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
Definiera fältet så att du kan ställa in vilken prefab som ska genereras baserat på i förväg.
Instantiate
Du kan skicka en metod för att skapa ett GameObject
nytt objekt baserat på det objektet.
Positionen för det skapade objektet blir ursprunget, och oavsett hur många objekt som skapas överlappar objekten varandra och det är svårt att förstå, så positionen ställs in slumpmässigt efter skapandet. Positionsjusteringsvärdet är lämpligt eftersom det är ett prov.
Koppla skriptet till EventSystem.
GameObject
är inställd så släpp prefab här.
När du klickar på knappen anropas OnClick
metoden.
Exempel på körning
När du har skapat det kör du spelet och klickar på knappen. Varje klick ska generera ett objekt.
Naturligtvis, eftersom det genereras baserat på prefab, om värdet på prefab ändras, kommer det genererade objektet att genereras enligt det värdet.