L'acchiappatore
Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 36 di 67.
In questo capitolo realizzerai un piccolo gioco, Catch the Star, una funzionalità per lezione: una stella cade, tu fai scorrere un raccoglitore a destra e a sinistra sotto di essa, ogni presa dà punti e fa cadere più velocemente la stella successiva, e tre mancate prese terminano il gioco. Tutto è contenuto in uno script, Catcher, sul raccoglitore. La prima funzionalità è il movimento: il raccoglitore scorre con i tasti freccia e non lascia mai il pavimento.
Mantenere un numero entro determinati limiti è compito di Mathf.Clamp(value, min, max). Restituisce min quando il valore è inferiore a min, max quando è superiore a max e, altrimenti, il valore stesso. Questa telecamera segue il giocatore mentre sale su una torre, ma la sua altezza rimane tra 2 e 12:
[SerializeField] private Transform player;
void Update()
{
float y = Mathf.Clamp(player.position.y, 2f, 12f);
transform.position = new Vector3(transform.position.x, y, transform.position.z);
}Clamp restituisce un nuovo numero e non modifica nulla da solo, quindi assegna il risultato. Applica Clamp dopo tutte le modifiche del frame e prima di riscrivere la posizione, così nessun frame mostrerà mai l'oggetto oltre il suo limite.
Sfida
MedioFai muovere il ricevitore (la barra blu). Mentre tieni premuta la freccia destra, scivola verso destra (lungo +x); mentre tieni premuta la freccia sinistra, scivola verso sinistra, in entrambi i casi a speed unità al secondo. Le coordinate y e z non cambiano mai.
Il pavimento va da x = -5 a x = 5 e il ricevitore è largo 2 unità. Limita il suo valore x in modo che il ricevitore rimanga sempre completamente sul pavimento.
Premi Play, fai clic sul gioco e prova le frecce, poi Check.
Provalo tu
using UnityEngine;
public class Catcher : MonoBehaviour
{
[SerializeField] private float speed = 6f;
void Update()
{
// Frecce: sposta il raccoglitore lungo x a speed unità al secondo.
// Mantieni l'intero raccoglitore sul pavimento (x da -5 a 5, il raccoglitore è largo 2).
}
}
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