GUIDE DÉBUTANT #1 – Les variables en C# dans Unity

Qu’est-ce qu’une variable ?

Comme tous les langages de programmation, le C# va pouvoir conserver des données grâce à des variables. Ce sont en fait des blocs de mémoire qui vont contenir des nombres, des chaînes de caractères, des dates ou plein d’autres choses.
Les variables vont nous permettre d’effectuer des calculs mathématiques, d’enregistrer les points du joueur, de comparer des valeurs, etc.

On peut les comparer à des petits classeurs possédant une étiquette. On va pouvoir mettre des choses dans ces classeurs, par exemple :

je mets 30 dans le classeur étiqueté « score » et « BigBoss » dans le classeur « Pseudo».

Si je veux connaître le score de « BigBoss », je n’ai qu’à regarder dans le classeur « score » pour obtenir 30. Je peux également remplacer ce qu’il y a dans mon classeur par autre chose, par exemple changer 30 en 25. Je ne peux par contre pas mettre deux choses dans mon classeur, il n’a qu ’un seul emplacement.

Une variable est représentée par son nom, caractérisée par son type et contient une valeur.

Par exemple, l’âge d’une personne pourrait être stockée sous la forme d’un entier et accessible par la variable « age », ce qui s’écrit en C# :

int age;

Les types de variable que vous devez connaître pour débuter avec Unity en C# sont :

  • Int (Integer, nombre entier)
  • float (Flottant, nombre a virgule)
  • String (Chaine de caractére)
  • Bool (Bolean 2 valeurs possible : vrai ou faux)

Quelques exemples de déclaration :

  • Int age=42;
  • float taille=1.80f;
  • String prenom= »Pierre »;
  • Bool homme=true;

L’intérêt des variables n’est pas forcément évident quand on débute, mais d’ici quelques lignes de code vous allez comprendre avec évidence que sans variable le développement serait bien compliqué et ceci est valable pour n’importe quel language de programmation.

Un simple exemple d’utilité des variables, Le joueur a attrapé un bonus dans votre jeu, ce bonus double son score, Il me suffit de multplier par 2 la valeur de la variable « score » de type int. Ou encore, souhaiter la bienvenue au lancement du jeu en fonction d’un homme ou une femme, « Bonjour Monsieur », si la variable homme de type bool est égal a true, ou « Bonjour Madame » si elle est égal a false;

Opérations, Concaténation de variables

La concaténation  permet d’afficher des variables dans une chaîne de caractère, par exemple :

   int age = 42;
   string prenom = "arnold";

    void Start () {
        Debug.Log("je suis " + prenom + ", j'ai " + age +" ans.");
    }

Au lancement du jeu, la console de Unity va afficher le texte « je suis arnold , j’ai 42 ans. »

Les variables prenom et age ont été concaténées avec la chaîne de caractère.

Avec des variables de type nombre il va étire possible d’ effectuer des opérations arithmétiques :

 int longueur = 42;
 int largeur = 2;

    void Start () {
        Debug.Log("longueur x largeur =" + longueur *largeur);
    }

La console d’unity va afficher au lancement du jeu : « longueur x largeur =84 »

les variables longueur et largeur ont été multiplié il est possible de faire toutes les opérations arithmétique soustraction, division, addition, etc..

Variable Privée

Lors de la déclaration de la variable dans le script , on fait précéder le mot clé Private ou lorsque l’on ne l’indique pas, alors la variable est privée. Elle sera accessible uniquement dans les méthodes présente dans le script :

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class monscript : MonoBehaviour {

    string prenom = "luc";
    private string nom = "Skywalker";
    bool masculin = true;

    void Start () {
        Debug.Log("Bonjour "+ prenom);
    }   
    
    void Update () {
        Debug.Log("Re-Bonjour " + prenom);
    }
}

La console affichera au lancement du jeu « Bonjour Luc » grâce a la méthode Start, et ensuite a chaque frame « Re-Bonjour luc » grâce a la méthode Update.

A noter que les variables prenom et nom sont toutes les deux privées.

Mais Attention a la portée des variables privée, au cas ou vous déclarez une variable dans une méthode, celle ci ne sera accessible que dans la méthode ou elle est déclaré :

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class monscript : MonoBehaviour {    

    void Start () {
        string prenom = "luc";
        Debug.Log("Bonjour "+ prenom);
    }   
    
    void Update () {
        Debug.Log("Re-Bonjour " + prenom); 
    }
}

La variable prenom est déclaré dans la méthode Start elle ne peu être utilisée que depuis cette méthode.

Au start la console affichera : Bonjour luc

Par contre il y a une erreur dans la méthode Update, car la variable prénom n’est pas connu, elle n’est pas déclaré !!! Votre jeu affichera une erreur au lancement.

Variable Publique

Une variable publique présente plusieurs avantages :

  1. Elle est accessible depuis un autre script
  2. Elle est par défaut visible et modifiable depuis l’inspector d’unity.

On fait précéder le mot clé Public dans la partie déclarative du script :

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class monscript : MonoBehaviour {
    public int points = 100;

    void Start () {
        Debug.Log("Nombres de points :" + points);
    }   
    
}

Comme la variable privée elle sera accessible partout dans le script, mais elle sera aussi accessible depuis les autres scripts du jeu.

Très intéressant, car si j’utilise un script qui permet de détruire un ennemi alors je vais pourvoir incrémenter cette variable depuis ce script afin d’incrémenter les points du joueur.

Par contre une variable public ne peut être déclarée uniquement dans la partie déclarative d’un script, si vous la déclarez dans une méthode le script ne fonctionnera pas.

Voila qui vient conclure cette introduction sur les variables en C# dans unity. Vous en savez un peu plus si vous débutez sur ce fabuleux moteur physique de développement de jeu vidéo.

UPLN

A propos de upln 200 Articles
En informatique le problème se situe souvent entre la chaise et le clavier !

Soyez le premier à commenter

Poster un Commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.