Jeu Vidéo 2

Techniques d'intégration multimédia, prof(s):

Nomenclature

Règles à suivre pour bien nommer les identificateurs présents dans un code C#/Unity.

Trois styles de notations seront à utiliser dans vos codes:

  • La notation chameau (camelCase) → Les mots qui composent un nom débutent par une majuscule, sauf le tout premier.
    Exemples: pointageFinal, saisieNomUsager, nbEssais, etc.
  • La notation Pascal (PascalCase) → Les mots qui composent un nom débutent tous par une majuscule y compris le tout premier.
    Exemples: AugmenterPointage(), EffacerInfo(), Recommencer(), etc.
  • La notation screaming snake (SCREAMING_SNAKE_CASE) → Les mots qui composent un nom sont tous en majuscules et séparés par un caractère de soulignement.
    Exemples: NOMBRE_PI, POINTAGE_MAX, LIMITE_ECRAN_DROITE, etc.

Les règles suivantes sont en vigueur dans ce cours. Elles sont basées sur des pratiques courantes en C#, mais également dans d'autres langages (notamment en Java et JavaScript).

Élément Nomenclature Exemples
Variable locale / paramètre de fonction notation chameau string nomPerso, int nbVies, ptBonus, ageUsager, nbLaserJoueur
Classe notation Pascal GameManager, TankEnnemi, Perso
Méthode / fonction notation Pascal AugmenterPoints(), EffacerInfo(), Exploser()
Champ (field) privé ou public notation chameau avec préfixe de soulignement (underscore) _vitesse, _pointsVie, _pointage, _screenWidth
Constante notation screaming snake TAUX_TAXE, PI, POINTAGE_MAX, INFO_FINALE
Enums notation Pascal (type et valeur) Mois.Avril, JourSemaine.Vendredi, Niveau.Donjon
Propriétés (get/set) même nom que le champ accédé mais sans soulignement au début vitesse, pointsVie, pointage, screenWidth
GameObject ou assets notation chameau (suivre les mêmes règles que pour les variables). Faire usage d'un préfixe suivit d'un soulignement (underscore) pour catégoriser les divers types de GameObjects (soyez consistants). Voir les détails à ce sujet plus bas dans cette page. snd_MusiqueVictoire, txt_Affichage, ennemi_Bleu01, niveau01_bonus_vie2
Important!

Règles supplémentaires à suivre pour les identificateurs:

  • Évitez les noms trop longs, trop courts ou peu significatifs
  • N'utilisez que des lettres de l'alphabet sans accents, des chiffres et le soulignement (underscore)
  • N'utilisez jamais 2 soulignements consécutifs
  • Ne débutez jamais un identificateur par un chiffre
  • Suggèrez une action pour un nom de fonction/méthode (typiquement avec un verbe): Attaquer(), Imprimer(), AfficherPts()
  • N'utilisez pas des mots clefs du langage de programmation comme identificateur. Exemple: Les mots List ou Update sont réservés par le langage de programmation en C#/Unity. Si vous donnez ces noms à une variable ou une méthode, vous causerez certainement une erreur de syntaxe!
  • Abreviations: À éviter, sauf si elles sont très faciles à comprendre pour la majorité des "lecteurs" de votre code.
    Quelques abréviations d'usage fréquent:
    • nb → nombre
    • pt → point
    • rand → random
    • anim → animation
    • str → string
    • txt → texte
    • snd → sound
    • cpt → compteur
    • var → variable
    • fct → fonction
    • max → maximum
    • min → minimum
    • btn → bouton
    • UI →"User Interface" (élément d'interface usager)

Concernant les noms de GameObjects...

Pour nommer les GameObjects dans la hiérarchie, on suit les mêmes règles de base que pour les noms de variables.

Cependant, les noms de GameObjects sont souvent précédés aussi d'un ou plusieurs préfixes. Exemple: Débuter les noms de champs de texte par txt_ , les noms de boutons par btn_ , les noms d'objets similaires par un descriptif court approprié (ennemi_ , obstacle_ , carte_ , etc).

Le système de préfixes peut être plus élaboré selon vos besoins. Par exemple, on pourrait utiliser UI_text_ comme préfixe pour des champs de texte et UI_btn_ pour les boutons... Cela permet de créer des "familles" de noms, ce qui facilite la recherche d'éléments particuliers avec les outils de recherche.

Dans un tel système, utilisez vos préfixes multiples de façon à décrire les objets du plus général au plus spécifique.
Par exemple: niveau2_bateauBleu_capitaineBob et non bateauBleu_capitaineBob_niveau2

Quand vous aurez décidé d'une façon de nommer vos GameObjects (votre propre système) le plus important c'est d'y adhérer de façon rigoureuse dans tout votre projet. Par exemple, si vous avez décidé que vos noms de GameObjects de boutons doivent débuter par UI_btn_ , ne faites pas commencer certains noms de boutons par UI_bouton_ , btn_ ou simplement bouton_ .