Astuces de programmation Unity

En ce qui concerne la programmation en Unity, il existe une pléthore de mots-clés de programmation utiles et des commandes pour améliorer le flux de travail dans l'éditeur et accélérer le processus de développement.

Certains des mots-clés sont dédiés au débogage, tandis que d'autres sont conçus pour séparer la logique de l'éditeur de la logique de script.

1. '[SerializeField]' Attribut

Par défaut, Unity masque les variables privées de l'inspecteur, mais en ajoutant un attribut '[SerializeField]' devant elles, elles deviendront configurables dans l'inspecteur tout en les gardant inaccessibles depuis d'autres scripts.

[SerializeField]
private int myPrivateVariable;

2. '[HideInInspector]' et '[System.NonSerialized]' attributs

Les attributs '[HideInInspector]' et '[System.NonSerialized]' ont une fonction similaire, pour masquer les variables publiques à l'inspecteur, cependant, ils diffèrent légèrement en termes de sérialisation.

La différence entre '[HideInInspector]' et '[System.NonSerialized]' est que '[HideInInspector]' masquera simplement la variable à l'inspecteur, cependant, Unity continuera à la sérialiser ( ce qui signifie que la valeur par défaut pourrait être différente de celle fournie dans le code), '[System.NonSerialized]' d'autre part, non seulement masquera la variable à l'inspecteur, mais signalera également à Unity de ne pas sérialisez-le (ce qui signifie que la valeur par défaut sera réinitialisée entre les sessions à celle fournie dans le code).

[HideInInspector]
public int myInternalVariable = 0; //Will always be 0 after the first initialization, so if you decide to change the value in the script, it may not always reflect in the Editor. Often used to remove clutter from the inspector.

[System.NonSerialized]
public int myNonSerializedVariable = 1; //The initial value will always be 1, or whatever value is set. Often used to mimic a private variable, while keeping it accessible from within other scripts.

3. '[ExecuteAlways]' Attribut

'[ExecuteAlways]' force le script à être exécuté en mode d'édition et en mode d'édition Prefab, même lorsque le jeu n'est pas en cours de lecture. Cela peut être utile à des fins de test et de débogage.

L'attribut est ajouté avant la déclaration de classe:

[ExecuteAlways]
public class MyScript : MonoBehaviour {
    // ...
}

4. 'Debug.Break()'

'Debug.Break()' met l'éditeur en pause.

Cette fonction est utile lorsque vous souhaitez vérifier certaines valeurs dans l'inspecteur et que vous ne pouvez pas le mettre en pause manuellement.

void Update() {
    if (someCondition) {
        Debug.Break();
    }
}

5. '[Range]' Attribut

L'attribut '[Range]' vous permet de créer un curseur dans l'éditeur pour une variable flottante ou int publique, ce qui peut être utile pour ajuster les valeurs à la volée, de manière plus conviviale. Fournissez simplement les valeurs min et max, comme ceci:

[Range(0f, 1f)]
public float myFloatVariable;

Commentez ci-dessous vos trucs et astuces de programmation préférés en Unity.

Articles suggérés
Introduction au langage de script Unity C#
Liste Unity de mots clés utiles en C#
Comprendre l'architecture basée sur les composants de Unity
Création d'un contrôleur de tourelle dans Unity
Unity Comment créer un shader
Création de classes et d'objets dans Unity Code
Utilisation de boucles (For, While) pour répéter l'exécution du code