Mencipta objek berdasarkan Prefab daripada skrip
Persekitaran pengesahan
- Windows
-
- Windows 11
- Penyunting Perpaduan
-
- 2021.3.3F1
- Pakej Sistem Input
-
- 1.3.0
Prasyarat untuk petua ini
Tetapan berikut telah dibuat terlebih dahulu sebagai premis untuk penerangan petua ini.
Mencipta objek berdasarkan Prefab dalam skrip
Dalam Petua sebelumnya, kami meletakkan objek dari Prefab ke pandangan, tetapi dalam kes ini, kami meletakkan bilangan objek yang telah ditetapkan dan melancarkan permainan. Walau bagaimanapun, sesetengah permainan mungkin mahu menambah objek secara dinamik semasa permainan sedang berjalan. Dalam kes itu, anda perlu menambahnya dari prefab dalam skrip.
Penciptaan sampel
Selepas menggunakan projek baru, letakkan butang. Mari cuba menjana objek dari prefab setiap kali kita mengklik butang.
Buat prefab. Ini adalah prosedur yang sama seperti petua sebelumnya.
Mencipta skrip untuk menambah objek pada kali seterusnya anda mengklik butang. ButtonEvent
Tinggalkan nama sebagai .
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
Tentukan medan supaya anda boleh menetapkan prefab yang akan dijana berdasarkan terlebih dahulu.
Instantiate
Anda boleh lulus kaedah untuk mencipta GameObject
objek baru berdasarkan objek tersebut.
Kedudukan objek yang dicipta menjadi asal, dan tidak kira berapa banyak objek dicipta, objek bertindih dan sukar difahami, jadi kedudukan ditetapkan secara rawak selepas penciptaan. Nilai pelarasan kedudukan adalah sesuai kerana ia adalah sampel.
Lampirkan skrip ke EventSystem.
GameObject
ditetapkan jadi jatuhkan prefab di sini.
Apabila butang diklik, kaedah OnClick
dipanggil.
Pelaksanaan Sampel
Setelah dibuat, jalankan permainan dan klik butang. Setiap klik hendaklah menjana objek.
Sudah tentu, kerana ia dijana berdasarkan prefab, jika nilai prefab berubah, objek yang dihasilkan akan dijana mengikut nilai tersebut.