Menu
CoddyTech

Il raccoglitore

Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 50 di 85.

Questo capitolo crea un piccolo gioco, Catch the Star, una funzionalità per lezione: una stella cade, tu fai scorrere un acchiappatore a sinistra e a destra sotto di essa, ogni presa assegna punti e fa cadere la stella successiva più velocemente, e tre mancate prese terminano la partita. Tutto è contenuto in un unico script, Catcher, sull'acchiappatore. La prima funzionalità è il movimento: l'acchiappatore scorre con i tasti freccia e non lascia mai il pavimento.

Mantenere un numero entro determinati limiti è il 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 fotogramma e prima di riscrivere la posizione, così nessun fotogramma mostrerà mai l'oggetto oltre il suo limite.

challenge icon

Sfida

Medio

Fai muovere il ricevitore, la barra blu.

  1. In Update(), copia transform.position.x in float x, poi aggiungi o sottrai speed * Time.deltaTime in base alla freccia tenuta premuta.
  2. Mantieni il ricevitore largo 2 unità sul pavimento (x da -5 a 5): x = Mathf.Clamp(x, -4f, 4f);.
  3. Riscrivi x in transform.position, mantenendo y e z.

Premi «Gioca» e tieni premute le frecce: si ferma ai bordi. Poi premi «Verifica».

Provalo tu

using UnityEngine;

public class Catcher : MonoBehaviour
{
    [SerializeField] private float speed = 6f;

    void Update()
    {
        // Frecce: scorri lungo x a speed unità al secondo.
        // Mantieni l'intero catcher sul pavimento (x da -5 a 5, il catcher è largo 2).
    }
}

Tutte le lezioni di Fondamenti di scripting in Unity

Esercitati da solo: Playground Unity