Variables¶
Les variables permettent de stocker une valeur (int, float, bool, etc.) ou une référence vers un objet Unity (GameObject, Transform, etc.).
Dans cette section, nous verrons les variables et leurs types.
Int¶
Le type int (integer) sert à stocker un nombre entier.
public int chickenQty;
chickenQty = 10;
Float¶
Le type float sert à stocker un nombre décimal.
public float myFloat;
myFloat = 1.5f;
f
En C#, un nombre décimal comme 1.5 a un type « Double ». Pour un float, on écrit 1.5f.
Bool¶
Le type bool sert à stocker true ou false.
public bool myBool;
myBool = true;
Vector2¶
Le type Vector2 contient une coordonnée 2D (x et y).
public Vector2 myVector2;
myVector2 = new Vector2(1f, 2f);
Vector3¶
Le type Vector3 contient une coordonnée 3D (x, y et z).
public Vector3 myVector3;
myVector3 = new Vector3(4f, 22f, 1f);
Tableau (array)¶
Une variable peut être un tableau. Il suffit d'ajouter [] pour la transformer en tableau.
public int[] myInts;
Une fois le tableau créé, on doit lui indiquer combien d'éléments il comporte et leur donner une valeur. Deux options :
// Ici, on a créé un tableau de 3 `int` et on assigne les valeurs directement
public int[] myInts = { 0, 2, 3 };
// Ici, on a créé un tableau de 4 `int`
myInts = new int[4];
// Ensuite, on assigne les valeurs une à une
myInts[0] = 2;
myInts[1] = 4;
myInts[2] = 5;
myInts[3] = 1;
// Ici, on a créé un tableau de 4 `int`
myInts = new int[4];
// Ensuite, on assigne les valeurs avec une boucle par exemple
for (int i = 0; i < myInts.Length; i++)
{
myInts[i] = 0;
}
Variables Unity¶
Unity a des types qu'on utilise souvent pour référencer des objets et modifier leurs paramètres.
GameObject¶
GameObject permet de référencer un objet présent dans la Hierarchy.
public GameObject myGameObject;
Si la variable est visible dans le panneau Inspector, tu peux glisser un GameObject depuis le panneau Hierarchy dans le champ correspondant.

Une fois qu'on a une référence, on peut lire ou modifier certains éléments :
// Ici, on vérifie le nom du GameObject
if (myGameObject.name == "nom")
{
}
// Ici, on vérifie le tag du GameObject
if (myGameObject.CompareTag("tag"))
{
}
// Ici, on désactive le GameObject !
myGameObject.SetActive(false);
// Ici, on change la position du GameObject
myGameObject.transform.position = new Vector3(0f, 0f, 0f);
Transform¶
Transform permet de contrôler la position, la rotation et l'échelle d'un GameObject référencé.
public Transform myTransform;
// Position
myTransform.position = new Vector3(0f, 0f, 0f);
// Rotation
myTransform.rotation = Quaternion.Euler(90f, 0f, 0f);
// Scale
myTransform.localScale = new Vector3(2f, 2f, 2f);
On peut aussi modifier la transformation du GameObject qui contient le script avec transform.
// Position
transform.position = new Vector3(0f, 0f, 0f);
// Rotation
transform.rotation = Quaternion.Euler(90f, 0f, 0f);
// Scale
transform.localScale = new Vector3(2f, 2f, 2f);
Camera¶
Camera permet de contrôler certains paramètres de la caméra.
public Camera myCamera;
myCamera.fieldOfView = 50f;
Animator¶
Animator permet de contrôler la composante Animator d'un GameObject.
public Animator myAnimator;
Play() joue une animation (ou un state) par son nom.
myAnimator.Play("monAnim");
SetBool, SetInt et SetFloat permettent de modifier les paramètres ajoutés à l'Animator.
myAnimator.SetBool("myBool", false);
AudioSource et AudioClip¶
AudioClip permet d'assigner un clip audio.
AudioSource permet de jouer du son.
public AudioSource lecteur; // Le composant sur l'objet
public AudioClip musiqueEpee; // Le fichier son dans ton projet
// Joue le son une seule fois
lecteur.PlayOneShot(musiqueEpee);
Color¶
Color permet de choisir une couleur via une palette.
public Color myColor;
Color orangeColor = new Color(1.0f, 0.64f, 0.0f, 1.0f);
Valeurs de couleurs
Color utilise des valeurs entre 0 et 1. Si tu veux entrer des valeurs 0 à 255, utilise plutôt Color32.
Color32 perfectGrey = new Color32(173, 173, 173, 200);
Sprite et SpriteRenderer¶
Ces deux types travaillent toujours ensemble pour afficher des images 2D dans votre jeu.
Sprite: C'est le fichier image lui-même (dans votre dossier Project).SpriteRenderer: C'est le Component (sur un GameObject)
Sprite permet d'assigner des sprites (images 2D).
public Sprite portraitHero; // L'image à afficher
public SpriteRenderer renduVisuel; // Le composant qui affiche l'image
Changer l'image (Le "Swap")¶
C'est très utile pour changer l'apparence d'un personnage (ex: ramasser une armure, changer d'arme).
// On remplace le sprite actuel par un nouveau
renduVisuel.sprite = portraitHero2;
Modifier l'apparence¶
Le SpriteRenderer permet de teinter l'image ou de la rendre invisible sans toucher au fichier original.
// Ici, on met le perso en bleu semi-transparent (0.5f d'alpha)
renduVisuel.color = new Color(0f, 0.5f, 1f, 0.5f);
Miroir (Flip)¶
Vous pouvez retourner l'image horizontalement ou verticalement via le code, très utilisé pour les déplacements gauche/droite.
// Si true, le personnage regarde vers la gauche (si l'image de base regarde à droite)
renduVisuel.flipX = true;
Public / Private¶
En C#, public est accessible depuis d'autres scripts.
Dans Unity, un champ sérialisé apparaît dans l'Inspector :
- une variable
publicest automatiquement sérialisée -
une variable
privatedoit être précédé de[SerializeField]pour être visible dansInspector.Exemple[SerializeField] private GameObject myGameObject;