Menu
CoddyTech

Pouse ou erre

Parte da seção Fundamentos de Scripting no Unity do Journey de Unity da Coddy. Lição 85 de 85.

Este desafio conclui o jogo da torre e a primeira seção do curso: um guindaste, um bloco em queda e um teste de aterrissagem com Mathf.Abs.

challenge icon

Desafio

Difícil

Faça cada bloco pousar na pilha ou cair para longe.

  1. Quando o bloco em queda estiver a uma distância de top's y + 1 e a menos de 1 de top's x, defina seu y exatamente como esse valor, torne-o top, esvazie falling e registre "Stack: " + count.
  2. Caso contrário, abaixo de y = -3, destrua-o, esvazie falling e registre Missed!.

Pressione “Jogar” e empilhe os blocos: cada pouso registra a altura. Em seguida, “Verificar”.

Experimente você mesmo

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;
            // Pousar na pilha: a próxima lição.
        }
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos de Scripting no Unity

Pratique por conta própria: Playground de Unity