Pengendalian Acara dalam Perpaduan: Menyesuaikan Langganan Acara untuk GameObjects
Pengenalan:
Melaksanakan acara pengendalian dalam Unity menggunakan C# boleh menjadi mencabar, terutamanya apabila menguruskan acara merentas berbilang GameObjects. Panduan ini menyelidiki pendekatan praktikal untuk mereka bentuk sistem acara yang membolehkan GameObjects jenis tertentu melanggan acara tertentu tanpa memerlukan prefab individu.
Menentukan Perpaduan TersuaiAcara:
Daripada bergantung pada pengendali acara statik dan perwakilan tersuai, Unity menyediakan penyelesaian yang dipermudahkan melalui UnityEvent. Kelas ini menawarkan antara muka grafik intuitif dalam tetingkap Inspektor, membolehkan anda menyambungkan fungsi daripada skrip lain ke acara tanpa memerlukan langganan acara eksplisit.
Contoh dengan UnityEvent:
Buat skrip bernama BigScript.cs dengan yang berikut kod:
using UnityEngine; using System.Collections; using UnityEngine.Events; public class BigScript : MonoBehaviour { [Header("Here's a cool event! Drag anything here!")] public UnityEvent whoa; private void YourFunction() { whoa.Invoke(); } }
Menyebut Acara:
YourFunction();
Menyambung Fungsi dengan Argumen:
Untuk acara yang memerlukan hujah, anda boleh mencipta kelas UnityEvent tersuai:
[System.Serializable] public class _UnityEventFloat : UnityEvent<float> {}
Kemudian, gunakan UnityEvent tersuai dalam anda skrip:
public _UnityEventFloat changedLength; void ProcessValues(float v) { changedLength.Invoke(1.4455f); }
Apabila menyambungkan fungsi dengan hujah, gunakan bahagian "Apungan dinamik" dalam Inspektor.
Kesimpulan:
Dengan memanfaatkan UnityEvent dan kelas UnityEvent tersuai, anda boleh mencipta sistem acara dengan cekap dalam Unity, membenarkan GameObjects jenis tertentu melanggan dan bertindak balas kepada acara secara dinamik tanpa memerlukan konfigurasi pasang siap yang kompleks.
Atas ialah kandungan terperinci Bagaimanakah UnityEvent Memudahkan Pengendalian Acara Merentasi Berbilang Objek Permainan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!