Menu
CoddyTech

Variáveis que guardam valores

Parte da seção Fundamentos de Scripting no Unity do Journey de Unity da Coddy. Lição 5 de 85.

Unity chama Update() a cada quadro, e cada chamada começa do zero: uma variável criada dentro de um método é descartada quando o método termina. Então, esse contador nunca passa de 1:

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

frames++ adiciona 1, uma forma abreviada de escrever frames += 1. Mas, no quadro seguinte, int frames = 0; é executado novamente e recomeça do zero.

Para lembrar um valor de um quadro para o seguinte, crie a variável dentro da classe, mas fora de todos os métodos. Uma variável nesse local é um campo: ela existe enquanto o objeto existir, e todos os métodos da classe podem usá-la.

int frames = 0;

void Update()
{
    frames++;
}

Agora frames continua contando: 1, 2, 3 e assim por diante, aumentando em um a cada quadro.

challenge icon

Desafio

Fácil

Faça a planta continuar crescendo.

  1. Recorte a linha int frames = 0; de dentro de Update().
  2. Cole-a acima de void Update(), dentro da classe, para que frames se torne um campo que mantém a contagem.

Pressione “Jogar”: a planta fica um pouco mais alta a cada quadro. Depois, pressione “Verificar”.

Experimente você mesmo

using UnityEngine;

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

Todas as lições de Fundamentos de Scripting no Unity

Pratique por conta própria: Playground de Unity