Tworzenie obiektu na podstawie prefabrykatów ze skryptu
Środowisko weryfikacji
- Windows
-
- Okna 11
- Edytor Unity
-
- 2021.3.3f1
- Pakiet systemu wejściowego
-
- 1.3.0
Wymagania wstępne dotyczące tej porady
Poniższe ustawienia zostały wcześniej wprowadzone jako przesłanka do opisu tej wskazówki.
Tworzenie obiektu na podstawie prefabrykatów w skrypcie
W poprzednich Tipach umieszczaliśmy obiekty z prefabrykatów do widoku, ale w tym przypadku umieszczamy z góry określoną liczbę obiektów i uruchamiamy grę. Jednak niektóre gry mogą chcieć dodawać obiekty dynamicznie podczas działania gry. W takim przypadku będziesz musiał dodać go z prefabrykatów w skrypcie.
Tworzenie próbki
Po wdrożeniu nowego projektu umieść przycisk. Spróbujmy wygenerować obiekt z prefabrykatów za każdym razem, gdy klikniemy przycisk.
Utwórz prefabrykat. Jest to ta sama procedura, co poprzednie wskazówki.
Utwórz skrypt, aby dodać obiekt przy następnym kliknięciu przycisku. ButtonEvent
Pozostaw nazwę jako .
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
Zdefiniuj pole, aby można było wcześniej ustawić, które prefabrykaty mają być generowane.
Instantiate
Można przekazać metodę, aby utworzyć GameObject
nowy obiekt na podstawie tego obiektu.
Pozycja utworzonego obiektu staje się początkiem i bez względu na to, ile obiektów jest tworzonych, obiekty nakładają się na siebie i trudno jest je zrozumieć, więc pozycja jest ustawiana losowo po utworzeniu. Wartość korekty położenia jest odpowiednia, ponieważ jest to próbka.
Dołącz skrypt do EventSystem.
GameObject
jest ustawiony, więc upuść prefabrykat tutaj.
Po kliknięciu przycisku wywoływana jest OnClick
metoda.
Przykładowe wykonanie
Po utworzeniu uruchom grę i kliknij przycisk. Każde kliknięcie powinno wygenerować obiekt.
Oczywiście, ponieważ jest generowany na podstawie prefabrykatów, jeśli wartość prefabrykatów ulegnie zmianie, wygenerowany obiekt zostanie wygenerowany zgodnie z tą wartością.