Menu
CoddyTech

Atterra o manca

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

Questa sfida completa il gioco della torre e la prima sezione del corso: una gru, un blocco che cade e una prova di atterraggio con Mathf.Abs.

challenge icon

Sfida

Difficile

Fai atterrare ogni blocco sulla pila oppure lascialo cadere.

  1. Quando il blocco in caduta arriva a y + 1 di top e si trova entro 1 da x di top, imposta la sua y esattamente a quel valore, rendilo top, svuota falling e registra "Stack: " + count.
  2. Altrimenti, quando scende sotto y = -3, distruggilo, svuota falling e registra Missed!.

Premi «Gioca» e impila i blocchi: ogni atterraggio registra l'altezza. Poi premi «Verifica».

Provalo tu

using UnityEngine;

public class Crane : MonoBehaviour
{
    [SerializeField] private GameObject blockPrefab;
    [SerializeField] private Transform top;
    [SerializeField] private float craneSpeed = 3f;
    [SerializeField] private float craneEdge = 4f;
    [SerializeField] private float fallSpeed = 7f;

    private float direction = 1f;
    private Transform falling;
    private int stack;

    void Update()
    {
        transform.position += new Vector3(direction * craneSpeed * Time.deltaTime, 0f, 0f);
        if (transform.position.x > craneEdge) direction = -1f;
        if (transform.position.x < -craneEdge) direction = 1f;

        bool drop = Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButtonDown(0);
        if (drop && falling == null)
        {
            Vector3 spot = new Vector3(transform.position.x, transform.position.y - 1f, 0f);
            falling = Instantiate(blockPrefab, spot, Quaternion.identity).transform;
        }

        if (falling != null)
        {
            falling.position += Vector3.down * fallSpeed * Time.deltaTime;
            // Atterraggio sulla pila: la prossima lezione.
        }
    }
}
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

Esercitati da solo: Playground Unity