Mencipta objek berdasarkan Prefab daripada skrip

Laman dikemaskini :
Tarikh penciptaan halaman :

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.