Implémentation du système d'événements dans Unity avec UnityEvent
Dans Unity, le système d'événements permet la communication entre les différents composants et objets de votre jeu. Lorsque vous utilisez l'approche C#, vous pouvez créer des événements personnalisés à l'aide de UnityEvent.
UnityEvent pour les événements personnalisés
Pour créer un événement personnalisé avec UnityEvent, définissez un UnityEvent public dans votre script, comme ceci :
public UnityEvent whoa;
UnityEvent fournit un moyen simple et intuitif de gérer les événements sans nécessiter de délégués explicites ou des signatures de fonction.
Exemple d'implémentation
Dans votre script "BigScript.cs" :
using UnityEngine; using UnityEngine.Events; public class BigScript : MonoBehaviour { [Header("Here's a cool event! Drag anything here!")] public UnityEvent whoa; private void YourFunction() { whoa.Invoke(); } }
Dans l'inspecteur, vous pouvez faire glisser et déposez d'autres scripts dans le champ d'événement "whoa". Ces scripts contiendront des fonctions qui sont invoquées lorsque l'événement "whoa" est déclenché.
Pour déclencher l'événement depuis le composant "BigScript", appelez simplement la méthode Invoke() sur l'événement "whoa".
Gestion des arguments dans les événements personnalisés
Pour les événements qui nécessitent des arguments, vous pouvez définir votre propre UnityEvent sous-classe avec des paramètres de type génériques. Par exemple, pour créer un événement qui prend un argument float :
[System.Serializable] public class _UnityEventFloat : UnityEvent<float> {}
Ensuite, dans votre script, vous pouvez définir l'événement et l'utiliser comme suit :
public _UnityEventFloat changedLength; void ProcessValues(float v) { // ... changedLength.Invoke(1.4455f); }
Lorsque vous faites glisser d'autres scripts au champ d'événement dans l'Inspecteur, assurez-vous de sélectionner la section "Flottant dynamique" pour gérer correctement les arguments.
Pratique Implémentation
Pour votre scénario spécifique où plusieurs objets doivent s'abonner à un événement commun, vous pouvez créer un script personnalisé et le joindre au préfabriqué pour la catégorie "personnel". Dans ce script, vous pouvez vous abonner à l'événement « Le jour est terminé ». Lorsque l'événement est déclenché, le script exécutera les actions nécessaires pour les membres du « personnel ».
Cette approche vous permet de vous abonner à l'événement de manière centralisée au sein du préfabriqué, éliminant ainsi le besoin d'abonner manuellement chaque objet instancié individuel. .
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!