Menu
CoddyTech

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.

challenge icon

Sfida

Medio

Fai 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).
    }
}
quiz iconMettiti alla prova

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