Sistem Acara
Modul Input

Sistem Pesan

Sistem UI(User Interface) Memungkinkan pengguna untuk berinteraksi dengan aplikasi Anda. Unity saat ini mendukung tiga sistem UI. More info
Lihat di Glossary
baru menggunakan sistem pesan yang dirancang untuk menggantikan SendMessssage. Sistem ini murni C# dan bertujuan untuk mengatasi beberapa masalah yang ada dengan SendMesssage. Sistem bekerja menggunakan antarmuka kustom yang dapat diterapkan pada MonoBehaviour untuk menunjukkan bahwa komponen mampu menerima callback dari sistem pesan. Ketika panggilan dibuat target GameObjectObjek mendasar dalam adegan Unity, yang dapat mewakili karakter, props, pemandangan, kamera, waypoints, dan banyak lagi. Fungsi GameObject didefinisikan oleh Komponen yang melekat padanya. More info
Lihat di Glossary
ditentukan; panggilan akan dikeluarkan pada semua komponen GameObject yang menerapkan antarmuka yang ditentukan bahwa panggilan dikeluarkan terhadap. Sistem pesan memungkinkan untuk data pengguna kustom yang akan dilewatkan, serta seberapa jauh melalui hierarki GameObject acara harus menyebar; itu harus hanya mengeksekusi untuk GameObject yang ditentukan, atau harus juga mengeksekusi pada anak-anak dan orang tua. Selain framework ini menyediakan fungsi helper untuk mencari dan menemukan GameObjects yang menerapkan antarmuka pesan yang diberikan.

Sistem pesan adalah generik dan dirancang untuk tidak hanya oleh sistem UI tetapi juga oleh kode permainan umum. Ini relatif sepele untuk menambahkan acara pesan khusus dan mereka akan bekerja menggunakan kerangka yang sama yang digunakan sistem UI untuk semua penanganan acara.

Bagaimana cara menentukan pesan khusus?

Jika Anda ingin menentukan pesan kustom yang relatif sederhana. Di UnityEngine. Namespace Sistem Acara ada antarmuka dasar yang disebut 'IEventSystemHandler'. Apa pun yang meluas dari ini dapat dianggap sebagai target untuk menerima peristiwa melalui sistem pesan.

public interface ICustomMessageTarget : IEventSystemHandler
{
    // functions that can be called via the messaging system
    void Message1();
    void Message2();
}

Setelah antarmuka ini ditentukan maka dapat diimplementasikan oleh MonoBehaviour. Ketika diimplementasikan mendefinisikan fungsi yang akan dieksekusi jika pesan yang diberikan dikeluarkan terhadap GameObject MonoBehaviours ini.

public class CustomMessageTarget : MonoBehaviour, ICustomMessageTarget
{
    public void Message1()
    {
        Debug.Log ("Message 1 received");
    }

    public void Message2()
    {
        Debug.Log ("Message 2 received");
    }
}

Sekarang bahwa skrip ada yang dapat menerima pesan yang kita butuhkan untuk mengeluarkan pesan. Biasanya ini akan menjadi tanggapan terhadap beberapa peristiwa yang digabungkan secara longgar yang terjadi. Misalnya, dalam sistem UI kami mengeluarkan acara untuk hal-hal seperti PointerEnter dan PointerExit, serta berbagai hal lain yang dapat terjadi dalam menanggapi masukan pengguna ke dalam aplikasi.

Untuk mengirim pesan kelas pembantu statis ada untuk melakukan ini. Sebagai argumen yang membutuhkan objek target untuk pesan, beberapa data spesifik pengguna, dan penghilang yang peta ke fungsi tertentu dalam antarmuka pesan yang ingin Anda targetkan.

ExecuteEvents.Execute<ICustomMessageTarget>(target, null, (x,y)=>x.Message1());

Kode ini akan mengeksekusi fungsi Pesan1 pada komponen apa pun pada target GameObject yang menerapkan antarmuka ICustomMessageTarget. Dokumentasi scripting untuk kelas ExecuteEvents mencakup bentuk lain dari fungsi Execute, seperti Executing pada anak-anak atau orang tua.

Sistem Acara
Modul Input