Dilansir dari dokumentasi Unity, Sistem UI baru menggunakan sistem pesan yang dirancang untuk menggantikan SendMessage. Sistem ini murni C# dan bertujuan untuk mengatasi beberapa masalah yang ada pada SendMessage. Sistem bekerja menggunakan antarmuka khusus yang dapat diimplementasikan pada MonoBehaviour untuk menunjukkan bahwa komponen tersebut mampu menerima panggilan balik dari sistem pesan. Saat panggilan dilakukan, target GameObject ditentukan; panggilan akan dikeluarkan pada semua komponen GameObject yang mengimplementasikan antarmuka tertentu yang akan digunakan untuk panggilan tersebut. Sistem perpesanan memungkinkan data pengguna khusus untuk diteruskan, serta seberapa jauh melalui hierarki GameObject acara harus disebarkan; itu hanya harus dijalankan untuk GameObject yang ditentukan, atau haruskah itu juga dijalankan pada child dan parent.
Sistem perpesanan bersifat umum dan dirancang untuk digunakan tidak hanya oleh sistem UI tetapi juga oleh kode permainan umum. Relatif sepele untuk menambahkan acara perpesanan khusus dan mereka akan bekerja menggunakan kerangka kerja yang sama yang digunakan sistem UI untuk semua penanganan acara.
Jika Anda ingin mendefinisikan pesan khusus, itu relatif sederhana. Dalam namespace UnityEngine.EventSystems ada antarmuka dasar yang disebut 'IEventSystemHandler'. Apa pun yang meluas dari ini dapat dianggap sebagai target untuk menerima acara melalui sistem pesan / messaging system.
1public interface ICustomMessageTarget : IEventSystemHandler
2{
3 // functions that can be called via the messaging system
4 void Message1();
5 void Message1();
6}
Setelah antarmuka ini didefinisikan maka dapat diimplementasikan oleh MonoBehaviour. Saat diimplementasikan, ini mendefinisikan fungsi yang akan dijalankan jika pesan yang diberikan dikeluarkan terhadap GameObject MonoBehaviours ini.
1public class CustomMessageTarget : MonoBehaviour, ICustomMessageTarget
2{
3 public void Message1()
4 {
5 Debug.Log ("Message 1 received");
6 }
7
8 public void Message2()
9 {
10 Debug.Log ("Message 2 received");
11 }
12}
Sekarang setelah ada skrip yang dapat menerima pesan, kita perlu mengeluarkan pesan. Biasanya ini akan menjadi respons terhadap beberapa peristiwa yang terjadi secara longgar. Misalnya, dalam sistem UI kami mengeluarkan peristiwa untuk hal-hal seperti PointerEnter dan PointerExit, serta berbagai hal lain yang dapat terjadi sebagai tanggapan atas masukan pengguna ke dalam aplikasi.
Untuk mengirim pesan, ada kelas pembantu statis untuk melakukan ini. Sebagai argumen, ini memerlukan objek target untuk pesan, beberapa data spesifik pengguna, dan fungsi yang memetakan ke fungsi spesifik di antarmuka pesan yang ingin Anda targetkan.
1ExecuteEvents.Execute<ICustomMessageTarget>(target, null, (x,y)=>x.Message1());
Kode ini akan menjalankan fungsi Message1 pada setiap komponen pada target GameObject yang mengimplementasikan antarmuka ICustomMessageTarget. Dokumentasi skrip untuk kelas ExecuteEvents mencakup bentuk lain dari fungsi Execute, seperti Executing pada child atau parent.
Cara Instal Unity 3D Menggunakan Unity Hub
Cara Instal Unity Hub Dan Mendapatkan Lisensi Gratis Unity 3D
Cara Membuat Project baru Game Android Dengan Unity 3D - Membuat Hello World
Cara Mengganti Kode Editor Yang Akan Digunakan Pada Unity 3D
Mengenal Fungsi Operasi Untuk Statistik Pada Microsoft Office Excel 2010
Cara Membuat Huruf Atau Tulisan Di WhatsApp Menjadi Coretan Atau Tercoret
Cara Instal CodeIgniter 4 Menggunakan Composer
Mengubah pengaturan Startup Corel Draw X6
Mengenal Bagian Bagian Corel Draw X6
Kode Transfer Bank Di Indonesia