Bonjour!Aujourd'hui, je voudrais parler brièvement de l'utilisation des événements pour se débarrasser des ordures et fournir des fonctionnalités complexes et dynamiques au code. Il convient de noter que cet article est davantage axé sur les débutants qui souhaitent en savoir plus sur les systèmes d'événements.
Nous analyserons toute cette affaire en utilisant l'exemple d'un système de contrôle du son. Ce système nous permettra d'activer / désactiver la musique et les sons dans les paramètres du jeu.
Avant de créer une classe de gestionnaire qui gérera les paramètres sonores et musicaux, nous créerons une classe sérialisable simple. Il sera utilisé comme modèle de données pour l'enregistrement en JSON.
using System.Collections; using System.Collections.Generic; using UnityEngine;
Vous pouvez maintenant commencer à écrire la classe manager. Nous allons l'installer sur la toute première scène. Ce gestionnaire sera un objet global et ne sera pas supprimé lors du déplacement d'une scène à l'autre.
using System.Collections; using System.Collections.Generic; using UnityEngine; using System.IO;
Maintenant que le gestionnaire est prêt, vous pouvez créer un objet vide sur votre scène initiale et le nommer, par exemple,
"_AUDIO_MANAGER" , puis y ajouter notre classe de gestionnaire. Vous pouvez le faire simplement en appelant le menu d'ajout de composant sur l'objet et en sélectionnant
"Game Managers" => "Audio Manager" .
Après cela, nous devons écrire un composant que nous ancrerons à chaque objet avec AudioSource.
using System.Collections; using System.Collections.Generic; using UnityEngine;
De cette façon, nous pouvons contrôler les sons / musique dans le jeu. Cet exemple ne dit en aucune façon comment le faire correctement, mais montre uniquement le fonctionnement du système d'événements et des écouteurs dans Unity3D.
Et enfin, je veux parler de ce que nous venons d'utiliser. Dans l'exemple ci-dessous, le délégué à partir duquel l'écouteur a été créé a été déclaré:
public delegate void AudioSettingsChanged(); public event AudioSettingsChanged OnAudioSettingsChanged;
Vous pouvez définir les performances de l'auditeur sous certaines conditions et vous y accrocher certaines méthodes qui seront exécutées lorsque ces conditions seront remplies.
Et avec l'aide de délégués, sur la base desquels nous avons créé un écouteur, vous pouvez créer des fonctions de rappel. Cela peut être particulièrement utile pour les méthodes asynchrones (par exemple, lors de l'envoi de requêtes POST asynchrones).
J'espère que ma petite expérience vous sera utile dans ce domaine et que vous pourrez appliquer cet exemple à vos projets. Je serai également heureux de répondre à vos questions (si quelqu'un ne comprend pas quelque chose).