Un script est un document écrit en langage informatique (C#) afin qu’il puisse être interprété par Unity.
Il permet de créer ses propres composants, des mécaniques et systèmes de jeu personnalisés.
Par exemple : ajouter de la force à un objet, détruire un ennemi, ouvrir une porte etc..
Lien vers la doc Unity : Script
Elles permettent de déclarer des valeurs ou des composants.
Dans notre exemple “ennemi” est un objet de type GameObject. Il est “public” car nous souhaitons qu’il apparaisse dans l’inspecteur. Plusieurs types de variables existent :
Les composants peuvent également être des variables, quelques exemples :
Les vecteurs peuvent également être des variables : Ils permettent de renseigner la Position de x, y, (Vector2) et de x,y,z (Vector3) et de la modifier si besoin (newVector = … )
Elles permettent de créer des comportements, en fonction de variables et de faire beaucoup d’autres choses !!
Les fonctions sont appelées à des moments précis comme la Start() ou la Update(), d’autres vont avoir des actions sur nos objets. On peut créer des fonctions selon les mécanismes que l’on veut créer.
Dans notre exemple la fonction Destroy, va détruire le GameObject “platform” déclaré au dessus.
(Ne pas tenir compte du void devant les fonctions)
(If en anglais, si en français) Elles permettent de d’interroger le code.
Dans notre exemple, la fonction ne s’exécutera que SI le tag de l’objet touché est “ennemi”.
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 :
Using : En fonction de ce que contient le script, on peut rajouter des “librairies” qui permettent d’utiliser des fonctions spéciales. Par exemple using UnityEditor.SceneManagement permettra de contrôler tout ce qui concerne la gestion de scène.
Les plus fréquents :
Public class Test : MonoBehaviour : La class est ce qui délimite le script, attention le nom du script (ici “test”) doit avoir le même nom que le fichier du script qui apparaît dans le projet.
Public : (en bleu) Signifie que la variable sera accessible directement dans l’inspecteur. On crée toutes les variables publics en haut, avant la fonction Start() et on n’oublie pas de les remplir des objets correspondants dans l’inspecteur.
void Start() : Dès que le bouton Play est pressé, ce qui est dans la fonction Start(), se produit, une seule fois.
void Update() : A chaque seconde, la fonction Update (Actualisation en français), exécute le code contenu dans sa fonction.
GameObject (en vert et avec des majuscules) : Réfère au type de variable utilisée.
gameobject ( en blanc avec des minuscules) : nom de la variable.
transform : position exacte de l’objet.
Debug.Log(“…”) : Le Debug.Log nous permet de vérifier les bugs. Dans notre exemple on souhaite savoir si il y a bien eu une collision. Dans la console, le message orange et entre guillemet s’affichera.
Quelques fonctions amusantes pour jouer avec la physique d’Unity :
rb.AddForce : Déclarez votre Rigidbody comme variable publique et donnez lui un nom, ici rb.
Dans la fonction Update, ajouter une condition : Si la touche UpArrow (flêche du haut) est pressée, AddForce à notre Rigidbody2D (que nous venons de nommer rb).