Menu
CoddyTech

Aterriza o falla

Parte de la sección Fundamentos de scripting en Unity del Journey de Unity de Coddy. Lección 85 de 85.

Este desafío termina el juego de la torre y la primera sección del curso: una grúa, un bloque que cae y una prueba de aterrizaje con Mathf.Abs.

challenge icon

Desafío

Difícil

Haz que cada bloque aterrice en la pila o caiga al vacío.

  1. Cuando el bloque que cae esté a una altura y de top + 1 y a menos de 1 de la x de top, establece su y exactamente en ese valor, conviértelo en top, vacía falling y registra "Stack: " + count.
  2. Si no, cuando esté por debajo de y = -3, destrúyelo, vacía falling y registra Missed!.

Pulsa «Jugar» y apila bloques: cada aterrizaje registra la altura. Después, pulsa «Comprobar».

Pruébalo tú mismo

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;
            // Aterrizar sobre la pila: la próxima lección.
        }
    }
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos de scripting en Unity

Practica por tu cuenta: Playground de Unity