Membuat objek berdasarkan Prefab dari skrip

Halaman Diperbarui :
Tanggal pembuatan halaman :

Lingkungan verifikasi

Windows
  • jendela 11
Editor Kesatuan
  • 2021.3.3f1
Paket Sistem Input
  • 1.3.0

Prasyarat untuk tip ini

Pengaturan berikut telah dibuat sebelumnya sebagai premis untuk deskripsi tip ini.

Membuat objek berdasarkan Prefab dalam skrip

Dalam Tips sebelumnya, kami menempatkan objek dari Prefab ke tampilan, tetapi dalam kasus ini, kami menempatkan sejumlah objek yang telah ditentukan dan meluncurkan game. Namun, beberapa game mungkin ingin menambahkan objek secara dinamis saat game sedang berjalan. Dalam hal ini, Anda harus menambahkannya dari cetakan dalam skrip.

Pembuatan sampel

Setelah menyebarkan proyek baru, letakkan tombol. Mari kita coba menghasilkan objek dari prefab setiap kali kita mengklik tombol.

Buat prefab. Ini adalah prosedur yang sama dengan tips sebelumnya.

Buat skrip untuk menambahkan objek saat berikutnya Anda mengklik tombol. ButtonEvent Biarkan 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 bidang sehingga Anda dapat mengatur prefab mana yang akan dihasilkan berdasarkan sebelumnya.

Instantiate Anda dapat melewati metode untuk membuat GameObject objek baru berdasarkan objek itu.

Posisi objek yang dibuat menjadi asal, dan tidak peduli berapa banyak objek yang dibuat, objek tersebut tumpang tindih dan sulit dipahami, sehingga posisinya diatur secara acak setelah pembuatan. Nilai penyesuaian posisi sesuai karena merupakan sampel.

Lampirkan skrip ke EventSystem.

GameObject diatur jadi jatuhkan prefab di sini.

Ketika tombol diklik, metode OnClick ini dipanggil.

Eksekusi Sampel

Setelah dibuat, jalankan game dan klik tombol. Setiap klik harus menghasilkan objek.

Tentu saja, karena dihasilkan berdasarkan prefab, jika nilai prefab berubah, objek yang dihasilkan akan dihasilkan sesuai dengan nilai itu.