Crearea unui obiect bazat pe un prefabricat dintr-un script
Mediul de verificare
- Windows
-
- Ferestre 11
- Unity Editor
-
- 2021.3.3F1
- Pachet sistem de intrare
-
- 1.3.0
Cerințe preliminare pentru acest sfat
Următoarele setări au fost făcute în avans ca premisă pentru descrierea acestui sfat.
Crearea unui obiect bazat pe un prefabricat într-un script
În sfaturile anterioare, am plasat obiecte din Prefabricate la vedere, dar în acest caz, plasăm un număr predeterminat de obiecte și lansăm jocul. Cu toate acestea, este posibil ca unele jocuri să dorească să adauge obiecte dinamic în timp ce jocul rulează. În acest caz, va trebui să îl adăugați din prefabricatul din script.
Crearea eșantionului
După implementarea noului proiect, plasați butonul. Să încercăm să generăm un obiect din prefabricat de fiecare dată când facem clic pe buton.
Creați un prefabricat. Aceasta este aceeași procedură ca și sfaturile anterioare.
Creați un script pentru a adăuga obiectul data viitoare când faceți clic pe buton. ButtonEvent
Lăsați numele ca .
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
Definiți câmpul astfel încât să puteți seta în prealabil prefabricatele care urmează să fie generate.
Instantiate
Puteți trece o metodă pentru a crea un GameObject
obiect nou bazat pe acel obiect.
Poziția obiectului creat devine originea și, indiferent câte obiecte sunt create, obiectele se suprapun și este dificil de înțeles, astfel încât poziția este setată aleatoriu după creare. Valoarea ajustării poziției este adecvată deoarece este un eșantion.
Atașați scriptul la EventSystem.
GameObject
este setat, așa că aruncați prefabricatul aici.
Când se face clic pe buton, se OnClick
apelează metoda.
Executarea eșantionului
Odată creat, rulați jocul și faceți clic pe buton. Fiecare clic ar trebui să genereze un obiect.
Desigur, deoarece este generat pe baza prefabricatului, dacă valoarea prefabricatului se modifică, obiectul generat va fi generat în funcție de acea valoare.