Il corridore
Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 60 di 67.
In questo capitolo realizzerai un piccolo gioco, Dodge the Blocks. Guiderai un corridore lungo una corsia mentre dei blocchi cadono dal cielo: basta un tocco per terminare la corsa. L’intero gioco è contenuto in un solo script, Runner, che acquisisce una funzionalità in ogni lezione: sterzare, far cadere i blocchi, rimuoverli, gestire l’impatto e tenere il punteggio.
La prima funzionalità consiste nello sterzare restando sulla corsia, usando Mathf.Clamp(value, min, max) di Catch the Star: restituisce min quando il valore è inferiore all’intervallo, max quando è superiore e, altrimenti, il valore stesso. La posizione del clamp è importante. Questo indicatore di carica si riempie mentre tieni premuto Space, si svuota quando non lo tieni premuto e resta sempre tra 0 e 10:
[SerializeField] private float charge = 0f;
void Update()
{
if (Input.GetKey(KeyCode.Space))
{
charge += 4f * Time.deltaTime;
}
else
{
charge -= 2f * Time.deltaTime;
}
charge = Mathf.Clamp(charge, 0f, 10f);
transform.localScale = new Vector3(0.5f, charge, 0.5f);
}Il clamp viene applicato dopo la modifica. Se venisse applicato prima, il valore potrebbe superare il limite di un passo alla fine del frame e la barra verrebbe disegnata usando quel valore. Inoltre, Mathf.Clamp restituisce un nuovo numero invece di modificare la variabile che gli passi, quindi assegna di nuovo il risultato alla variabile.
Sfida
MedioInizia Dodge the Blocks con il corridore. L'Inspector assegna allo script Runner speed (6) e laneEdge (4).
- Le frecce sinistra e destra muovono il corridore lungo l'asse x a
speedunità al secondo. - La sua x non scende mai sotto
-laneEdgené superalaneEdge, quindi rimane sulla corsia.
Premi Play, fai clic sul gioco e corri fino a entrambe le estremità della corsia, poi premi Check.
Provalo tu
using UnityEngine;
public class Runner : MonoBehaviour
{
[SerializeField] private float speed = 6f;
[SerializeField] private float laneEdge = 4f;
void Update()
{
// muovi lungo x con le frecce, poi mantieni x nella corsia
}
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti di scripting in Unity
1Il tuo primo script
Ciao, UnityPosiziona il cuboMuovi a ogni frameRuota ogni secondoGuida con i tastiRiepilogo: guida il cubo4Vettori
Sommare vettoriDirezioniSpazio locale e spazio globaleVelocità diagonaleDistanza tra gli oggettiVector3 è una structRiepilogo: pilota di droni7Progetto: Acchiappa la stella
L'acchiappatoreUna stella cadente10Il ciclo di vita degli script
Awake e StartUpdate e LateUpdateOnEnable e OnDisableL’ordine del ciclo di vitaRipasso: logger del ciclo di vita2L'Inspector
Campi dell'InspectorSerializeFieldNumeri decimali e MathfAttributi dell'InspectorRiepilogo: Ascensore5Trasformazioni e gerarchia
Genitori e figliScalaGuarda gli oggettiMuoversi verso un puntoRiepilogo: Luna in orbita6Oggetti di gioco e componenti
Riferimenti nell’InspectorOttenere un componenteComponenti mancantiAggiungere un componenteRequireComponentMostrare e nascondereRipasso: interruttore della luce