Les bases du C#

Cette page est de prĆ©fĆ©rence Ć  consulter aprĆØs laĀ Fiche Ressources Objets et ComposantsĀ (mais n’hĆ©sites pas y revenir pour avoir des prĆ©cisions sur Composants, notamment concernant les diffĆ©rences entre les jeux 2D et 3D).

Ci-dessous le sommaire des tutos :

Qu’est-ce qu’un script?

Si tu veux contrĆ“ler ce qui se passe Ć  l’écran, c’est souvent grĆ¢ce aux scripts que tu pourras! Avec les scripts, tu vas pouvoir prĆ©cisĆ©ment dĆ©finir le comportement de tes objets, dĆ©crire les rĆØgles du jeu et Ć©tablir des interactions entre les Ć©lĆ©ments de ta scĆØne! Bref, tu es le magicien, et le script est ton incantation!Ā 

Prends-le comme étant un composant que tu vas pouvoir personnaliser avec du code!

Un script apparaĆ®tra de cette maniĆØre dans tes assets! Tu peux l’ouvrir en double cliquant dessus, ce qui l’ouvrira dans ton Ć©diteur de code (Visual Studio la plupart du temps, sauf si tu en as choisi un autre)

Comment crƩer un script

VoilƠ les diffƩrentes Ʃtapes pour ajouter un script Ơ ton objet:

  1. SĆ©lectionne l’objet sur lequel tu veux ajouter ton script

  2. Clique surĀ Add ComponentĀ puis surĀ New Script

  3. Donne un nom pour le script! Le nom doit montrer clairement Ć  quoi le script va te servir : MouvementJoueur, DetruireQuandCollision, CompteARebours, OrienterVersLaSouris etc… (Attention: jamais d’espace dans les noms de script!)

Une fois que tu as validĆ©, le script apparaĆ®t maintenant dans l’inspecteur en tant que composant de ton objet

il apparaƮt aussi dans le dossier racine de tes assets.

šŸ’”Ā Range tes affaires!

Ce que je recommande est de crĆ©er unĀ dossier ScriptsĀ pour y ranger tous tes scripts! Le premier souci du dĆ©veloppeur est d’avoir affaire Ć  des assets mal rangĆ©s!Ā 

Pour créer un nouveau dossier, fais Clic droit > Create > Folder! Tu peux ensuite y glisser ton nouveau script!

Tu peux aussi crĆ©er directement ton script dans ton dossier Clic droit > Create > C# Script , tu n’auras plus Ć  le ranger par la suite !

La structure du code en C#

Unity utilise un langage de programmation appelĆ© C#. Tu peux ouvrir le contenu d’un script en double cliquant dessus. Cela ouvrira ton script dans ton Ć©diteur de code par dĆ©faut (Visual Studio si tu l’as installĆ© avec Unity).Ā 

Voici le template par défaut de tout nouveau script que tu crées sur Unity: 

Les trois premiĆØres lignes servent juste Ć  importer les fonctionnalitĆ©s habituellement utilisĆ©es dans un script. Ce n’est pas la peine d’y toucher pour le moment!Ā 

Tout ton code sera contenu dans ce qu’on appelle une classe! Ici, la classe s’appelle « monScript » mais bien Ć©videmment ce nom ne sera pas le mĆŖme en fonction du script que tu Ć©cris! Ce qui est important c’est que ce nom soit bien identique avec le nom du fichier! Sinon tu risquerais de recevoir une erreur similaire Ć  celle-ci quand tu essaies d’ajouter ton script Ć  un objet:Ā 

C’est pourquoi on ne touche pas trop Ć  la ligne « publicĀ classĀ monScript : MonoBehaviourĀ Ā»

Ce qui nous intƩresse vraiment est ce qui se passe entre les deux { } de la classe! Tu peux voir deux mƩthodes qui sont lƠ par dƩfaut:

  • Start
  • Update

Start

void Start() : DĆØs que le bouton Play est pressĆ©, ce qui est dans la fonction Start(), se produit, une seule fois.Ā  C’est pourquoi c’est ici qu’on met tous les codes d’initialisation. (par exemple, dire que le joueur commence la partie avec 5 points de vie)

C’est un peu l’équivalent du Bloc ā€œQuand le drapeau vert est cliquĆ©ā€ de Scratch pour ceux qui connaissent.

Update

void Update() : qui s’effectue Ć  chaque frame (FPS, depend de la vitesse du PC mais en general au moins 1/6Oe de seconde), la fonction Update (Actualisation en franƧais), exĆ©cute le code contenu dans sa fonction. C’est gĆ©nĆ©ralement dans le update que se situe le cœur du jeu. Le update reprĆ©sente ce qui se passe pendant que le jeu est toujours en train d’être jouĆ©. C’est donc lĆ  qu’on va gĆ©nĆ©ralement coder les actions du joueur, le comportement des ennemis, la mise Ć  jour du score…etc.

C’est un peu l’équivalent du Bloc ā€œRĆ©pĆ©ter indĆ©finimentā€ de Scratch pour ceux qui connaissent.

Astuce : Le mot void signifie que tu crƩe une fonction, penses Ơ le laisser devant ta fonction.

Les rĆØgles de l’écriture en C# :

Unity interprète toujours le code en C# du haut vers le bas. Il convient donc de bien séparer les blocs de code, ainsi que les lignes entre elles.

En fonction de l’élĆ©ment et de sa place, les sĆ©parateurs seront diffĆ©rents. Les couleurs permettent de diffĆ©rencier la nature des diffĆ©rents Ć©lĆ©ments.

3 Ć©lĆ©ments de ā€œgrammaireā€ importants :
  • { }Ā : Brackets (Accolades). Elles encadrent tout le code et sĆ©parent une fonction d’une autre ou une condition d’une autre.
  • Ā ;Ā : Point-Virgule. Il permet de clore la dĆ©claration d’une variable ou l’appel d’une fonction.
  • ( )Ā : ParenthĆØses. Elles permettent de dĆ©signer l’objet ou la variable concernĆ©e par la fonction.

Les conditions :

(If en anglais, si en franƧais) Elles permettent d’interroger le code.Ā 

  • On utilise le mot clĆ© ā€˜if’ ( = si)
  • On note entre parenthĆØse la condition
  • On ouvre (et ferme) des accolades et on note entre les accolades le code Ć  faire si la condition est vraie
  • Ā 

N’oublie pas de mettre des point-virgules Ć  la fin de chaque ligne et fermer tes accolades !

Par exemple, je peux crƩer une variable de vie pour un GameObject et si ma variable de vie est Ʃgale Ơ 0, je dƩtruis mon GameObject :

Debug.Log (ou print)

Debug.Log(ā€œā€¦ā€) : Le Debug.Log nous permet de vĆ©rifier les bugs. (on peut aussi utiliser print qui marche pareil et fera la mĆŖme chose. Debug.log est plus propre et considerĆ© plus « proĀ Ā»)

Dans mon exemple une musique est supposƩ se jouer. Mais aucune musique ne se lance. Ainsi en mettant un message Ơ cet endroit lƠ, il y a deux constat Ơ faire :

  • Soit le message s’affiche, et Ƨa veut dire que la collision avec l’ennemi s’effectue bien et qu’il y a un problĆØme aprĆØs le Debug.log !
  • Soit le message ne s’affiche pas et le problĆØme est avant le Debug.log sans doute au niveau de la collision qui ne s’effectue pas correctement !

Ou s’affiche ce message ?

Dans la console ! La console est situƩ par dƩfaut Ơ cƓtƩ du dossier Projet.

Ā 

Astuce :

Tu peux cliquer sur le boutonĀ CollapseĀ pour eviter que les message rĆ©current n’apparaissent trop de fois.

Retour en haut