Menu
CoddyTech

Des variables qui mémorisent

Fait partie de la section Les bases du scripting dans Unity du Journey Unity de Coddy. Leçon 5 sur 85.

Unity appelle Update() à chaque image, et chaque appel repart de zéro : une variable créée dans une méthode est supprimée lorsque la méthode se termine. Ce compteur ne dépasse donc jamais 1 :

void Update()
{
    int frames = 0;
    frames++;
}

frames++ ajoute 1, c’est la façon abrégée d’écrire frames += 1. Mais à l’image suivante, int frames = 0; s’exécute de nouveau et le compteur repart de zéro.

Pour mémoriser une valeur d’une image à la suivante, crée la variable dans la classe, mais en dehors de toutes les méthodes. Une variable déclarée à cet endroit est un champ : elle existe aussi longtemps que l’objet, et toutes les méthodes de la classe peuvent l’utiliser.

int frames = 0;

void Update()
{
    frames++;
}

Maintenant, frames continue de compter : 1, 2, 3, et ainsi de suite, en augmentant de 1 à chaque image.

challenge icon

Défi

Facile

Fais en sorte que la plante continue de grandir.

  1. Coupe la ligne int frames = 0; à l’intérieur de Update().
  2. Colle-la au-dessus de void Update(), à l’intérieur de la classe, afin que frames devienne un champ qui mémorise son compte.

Appuie sur « Jouer » : la plante grandit un peu à chaque image. Puis clique sur « Vérifier ».

Essayez vous-même

using UnityEngine;

public class Grower : MonoBehaviour
{
    void Update()
    {
        int frames = 0;
        frames++;
        transform.localScale = new Vector3(1, 1 + frames * 0.01f, 1);
    }
}

Toutes les leçons de Les bases du scripting dans Unity

Entraînez-vous par vous-même : Playground Unity