Les développeurs Unity cherchent souvent des moyens de simplifier la gestion des variables dans l’inspector.
Sans organisation et personnalisation, la navigation dans l’inspector peut devenir complexe et peu intuitive.
Les attributs Unity offrent des solutions pratiques pour personnaliser l’inspector, rendant le développement plus intuitif et efficace.
Créez votre premier jeu 3D en C# avec Unity, étape par étape.
Dans Unity, les attributs de l’ inspector permettent de personnaliser et de contrôler la manière dont les variables sont affichées et manipulées dans l’éditeur. Ils sont essentiels pour rendre le développement plus intuitif, en exposant des variables privées dans l’inspector, en ajoutant des annotations visuelles ou en imposant certaines contraintes.
Avant d’aller plus loin, prenons tout le temps de créer un script « DemoAttribut » puis, sur la scène, un empty object du même nom auquel nous associerons le script.
- SerializeField
En général, vous devriez garder autant que possible vos variables privées à moins d’avoir très bonne raison de les exposer en public. Le problème avec cette approche est que par défaut les variables privées ne s’affichent pas dans l’inspecteur. C’est là qu’intervient les attributs SerializeField .
SerializeField est l’un des attributs les plus couramment utilisés dans Unity. Il permet de rendre une variable privée visible et modifiable dans l’inspector, tout en maintenant son encapsulation.
usingUnityEngine;
publicclassDemoAttribut : MonoBehaviour {
[SerializeField] privateinthealth = 100;
}
Ici, la variable health est privée, mais grâce à SerializeField , elle apparaît dans l’inspector, ce qui permet de la modifier directement dans l’éditeur sans exposer la variable au reste du code. Notons que l’attribut peut également être placé sur la même ligne où est déclaré la variable, comme suit :
[SerializeField] private int health = 100;
Jetons un coup d’œil dans l’éditeur de Unity :
- Header
Header permet d’ajouter un titre au-dessus d’une variable ou d’un groupe de variables dans l’inspector. Cela rend le script plus lisible et bien organisé.
usingUnityEngine;
publicclassDemoAttribut : MonoBehaviour {
[Header("Player Stats")][SerializeField] privateinthealth = 100;
[SerializeField] privateintarmor = 50;
}
Le texte » Player Stats » sera affiché en tant que titre dans l’inspector au-dessus des variables health et armor comme suit :
- Space
Space est utilisé pour ajouter un espace visuel entre les variables dans l’inspector. Cela permet de structurer visuellement les groupes de variables pour une meilleure lisibilité.
usingUnityEngine;
publicclassDemoAttribut : MonoBehaviour {
[SerializeField] privateinthealth = 100;
[Space(10)][SerializeField] privateintarmor = 50;
}
Un espace de 10 unités seront insérées entre les variables health et armor dans l’inspector. Prenez le temps de vérifier en ouvrant dans l’éditeur de Unity.
- Tooltip
Tooltip affiche une description lorsque l’utilisateur passe la souris sur une variable dans l’inspector. C’est utile pour documenter rapidement l’utilisation de certaines variables.
Voici un exemple de code mettant en relief l’usage du Tooltip :
usingUnityEngine;
publicclassDemoAttribut : MonoBehaviour {
[Tooltip("Points de vie du joueur")][SerializeField] privateinthealth = 100;
}
Lorsque vous passez la souris sur health dans l’inspector, la description « Points de vie du joueur » apparaîtra.
- Range
Range est utilisé pour restreindre la plage de valeurs qu’une variable peut prendre. Il ajoute un slider dans l’inspector pour modifier la valeur.
usingUnityEngine;
publicclassDemoAttribut : MonoBehaviour {
[Range(0, 100)][SerializeField] privateinthealth = 100;
}
Dans l’inspector, health aura un slider permettant de choisir une valeur entre 0 et 100 , empêchant ainsi d’entrer une valeur en dehors de cette plage.
- RequireComponent
RequireComponent force Unity à ajouter automatiquement un composant requis lorsque le script est attaché à un GameObject. C’est utile pour s’assurer que les dépendances nécessaires sont toujours présentes.
usingUnityEngine;
[RequireComponent(typeof(Rigidbody))] publicclassDemoAttribut : MonoBehaviour {
[Range(0, 100)][SerializeField] privateinthealth = 100;
}
En ajoutant ce script à un GameObject, Unity ajoutera automatiquement un Rigidbody à ce GameObject s’il n’en possède pas déjà un. À titre de test, enlever puis associer à nouveau le script DemoAttribut à son GameObject.
Vous aurez le résultat qui suit :
Les attributs de l’ inspector vous permettent d’affiner l’interface de vos scripts dans Unity, améliorant ainsi leur lisibilité et leur utilisabilité. Maintenant que vous comprenez comment personnaliser l’inspector, l’étape suivante consiste à maîtriser la position des objets dans l’espace de jeu, ce qui est crucial pour le contrôle et l’interaction des éléments de votre scène.
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Comment utiliser SerializeField dans Unity ?
Quel est l'intérêt de l'attribut Header dans Unity ?
Comment fonctionne l'attribut Tooltip dans Unity ?
Pourquoi utiliser Range dans Unity ?
Quel est le rôle de RequireComponent dans Unity ?
Conclusion
Les attributs de l’inspector sont des outils puissants pour améliorer la lisibilité et l’interaction avec vos scripts Unity. Quelle autre fonctionnalité aimeriez-vous explorer pour optimiser votre expérience de développement Unity ?