Variabili che ricordano
Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 5 di 85.
Unity chiama Update() a ogni frame e ogni chiamata riparte da zero: una variabile creata all'interno di un metodo viene eliminata quando il metodo termina. Perciò questo contatore non supera mai 1:
void Update()
{
int frames = 0;
frames++;
}frames++ aggiunge 1, il modo breve per scrivere frames += 1. Ma al frame successivo viene eseguito di nuovo int frames = 0; e si ricomincia da capo.
Per ricordare un valore da un frame al successivo, crea la variabile all'interno della classe, ma al di fuori di ogni metodo. Una variabile definita lì è un campo: vive finché esiste l'oggetto e tutti i metodi della classe possono usarla.
int frames = 0;
void Update()
{
frames++;
}Ora frames continua a contare: 1, 2, 3 e così via, uno in più a ogni frame.
Sfida
FacileFai in modo che la pianta continui a crescere.
- Taglia la riga
int frames = 0;dall'interno diUpdate(). - Incollala sopra
void Update(), all'interno della classe, cosìframesdiventa un campo che ricorda il suo valore.
Premi «Gioca»: la pianta cresce un po' a ogni fotogramma. Poi premi «Verifica».
Provalo tu
using UnityEngine;
public class Grower : MonoBehaviour
{
void Update()
{
int frames = 0;
frames++;
transform.localScale = new Vector3(1, 1 + frames * 0.01f, 1);
}
}
Tutte le lezioni di Fondamenti di scripting in Unity
1Nozioni di base di C# in Unity
Ciao, UnityVariabiliI numeri decimali richiedono una fTesto nella ConsoleVariabili che ricordanoIf ed ElseConfrontare i numeriRipasso: il collezionista di monete7Cicli e metodi
Ripeti con forCicli annidatiScrivere un metodoMetodi che restituiscono valoriArrayRiepilogo: scala10Trovare gli oggetti
Trovare per nomeTagTrovare per tipoI riferimenti battono la ricercaIl null di UnityRipasso: la moneta più vicina13Progetto: Schiva i blocchi
Il corridoreBlocchi dal cielo2Fallo muovere
Posiziona il cuboMuovilo a ogni frameRuotalo ogni secondoGuidalo con i tastiRiepilogo: guida il cubo5Vettori
Somma di vettoriDirezioniSpazio locale e spazio mondoVelocità diagonaleDistanza tra gli oggettiVector3 è una structRiepilogo: pilota di droni8GameObject e componenti
Riferimenti nell'InspectorOttenere un componenteComponenti mancantiAggiungere un componenteRequireComponentMostrare e nascondereRiepilogo: interruttore della luce3L’Inspector
Campi dell’InspectorSerializeFieldNumeri decimali e MathfAttributi dell’InspectorRiepilogo: ascensore6Trasformazioni e gerarchia
Genitori e figliIssare la bandieraScalaOsservare gli oggettiMuoversi verso un puntoRiepilogo: Luna in orbita9Progetto: Acchiappa la stella
Il raccoglitoreUna stella cadente12Il ciclo di vita dello script
Awake e StartUpdate e LateUpdateOnEnable e OnDisableL'ordine del ciclo di vitaRiepilogo: Lifecycle LoggerEsercitati da solo: Playground Unity