Attributes
Pengecualian Referensi Null

UnityEvents

UnityEvents adalah cara memungkinkan callback yang didorong pengguna untuk bertahan dari waktu edit untuk menjalankan waktu tanpa perlu untuk pemrograman tambahan dan konfigurasi skrip.

UnityEvents berguna untuk sejumlah hal:

  • Konten didorong callback

  • Sistem Decoupling

  • Persistent callbacks

  • Acara panggilan yang dikonfigurasi

UnityEvents dapat ditambahkan ke setiap MonoBehaviour dan dieksekusi dari kode seperti delegasi .net standar. Ketika UnityEvent ditambahkan ke MonoBehaviour muncul di InspectorJendela Unity yang menampilkan informasi tentang Pengaturan GameObject yang dipilih saat ini, aset atau proyek, memungkinkan Anda untuk memeriksa dan mengedit nilai. More info
Lihat di Glossary
dan callback tetap dapat ditambahkan.

UnityEvents memiliki keterbatasan yang sama dengan delegasi standar. Itu, mereka memegang referensi ke elemen yang target dan ini menghentikan target yang dikumpulkan sampah. Jika Anda memiliki UnityEngine. Objek sebagai target dan representasi asli menghilang callback tidak akan diinjak.

Menggunakan UnityEvents

Untuk mengkonfigurasi callback di editor ada beberapa langkah untuk mengambil:

  1. Pastikan skrip Anda impor / gunakan UnityEngine.Events.

  2. Pilih ikon + untuk menambahkan slot untuk callback

  3. Pilih UnityEngine. Tujuan yang Anda inginkan untuk menerima callback (Anda dapat menggunakan pemilih objek untuk ini)

  4. Pilih fungsi yang Anda inginkan

  5. Anda dapat menambahkan lebih dari satu callback untuk acara

Ketika mengonfigurasi UnityEvent di Inspektur ada dua jenis panggilan fungsi yang didukung:

  • Login Panggilan statis dikonfigurasi panggilan, dengan nilai yang dikonfigurasi yang ditetapkan dalam UI(User Interface) Memungkinkan pengguna untuk berinteraksi dengan aplikasi Anda. Unity saat ini mendukung tiga sistem UI. More info
    Lihat di Glossary
    . Ini berarti bahwa ketika callback divoked, fungsi target divoked dengan argumen yang telah dimasukkan ke dalam UI.
  • Login Panggilan dinamis diinvoked menggunakan argumen yang dikirim dari kode, dan ini terikat pada jenis UnityEvent yang sedang diinvoked. UI menyaring callback dan hanya menunjukkan panggilan dinamis yang berlaku untuk UnityEvent.

Generika UnityEvents

Secara default UnityEvent dalam Monobehaviour mengikat secara dinamis ke fungsi void. Ini tidak harus menjadi kasus sebagai panggilan dinamis UnityEvents mendukung mengikat fungsi hingga 4 argumen. Untuk melakukan ini Anda perlu mendefinisikan kelas UnityEvent kustom yang mendukung beberapa argumen. Ini cukup mudah dilakukan:

[Serializable]

public class StringEvent : UnityEvent <string> {}

Dengan menambahkan contoh ini ke kelas Anda bukan dasar UnityEvent itu akan memungkinkan callback untuk mengikat secara dinamis ke fungsi string.

Ini kemudian dapat diinvokasi dengan memanggil fungsi Invoke() dengan argumen string.

UnityEvents dapat didefinisikan dengan hingga 4 argumen dalam definisi generik mereka.

Attributes
Pengecualian Referensi Null