Menu
CoddyTech

Construtor de Torres

Parte da seção Noções básicas de scripting no Unity do Journey de Unity da Coddy. Lição 67 de 67.

Um guindaste desliza para frente e para trás sobre uma base. Cada vez que você pressiona a barra de espaço ou clica, um bloco cai direto do guindaste. Um bloco que cai em cima da pilha fica ali, e o próximo bloco precisa pousar sobre ele. Um bloco que não acerta cai para longe. A altura da pilha é a pontuação.

Escreva o jogo inteiro em um único script, Crane, no guindaste.

challenge icon

Desafio

Difícil

Escreva o script Crane no Crane. No Inspector, defina blockPrefab (o prefab Block), top (a Base, o topo da pilha até o momento), craneSpeed (3), craneEdge (4) e fallSpeed (7).

  • O guindaste desliza ao longo do eixo x a craneSpeed unidades por segundo. Depois de craneEdge, ele volta para a esquerda e, depois de -craneEdge, volta para a direita.
  • A barra de espaço ou um clique com o botão esquerdo solta um Block na coordenada x do guindaste, 1 unidade abaixo dele. Enquanto um bloco está caindo, pressionar novamente não faz nada.
  • O bloco que está caindo se move para baixo a fallSpeed unidades por segundo.
  • Quando sua coordenada y chega à coordenada y de top mais 1, e sua coordenada x está a menos de 1 da coordenada x de top, ele pousa: defina sua coordenada y exatamente como a coordenada y de top mais 1, torne-o o novo top e registre a altura da pilha como Stack: 1, Stack: 2 e assim por diante.
  • Um bloco que não pousa continua caindo. Abaixo de y = -3, destrua-o e registre Missed!.

Pressione Play e construa uma torre; depois, Check.

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;

    void Update()
    {
    }
}
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 Noções básicas de scripting no Unity