Menu
CoddyTech

O Pegador

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

Este capítulo desenvolve um jogo pequeno, Catch the Star, com um recurso por lição: uma estrela cai, você desliza um apanhador para a esquerda e para a direita sob ela, cada captura vale pontos e faz a próxima estrela cair mais rápido, e três erros encerram o jogo. Tudo isso fica em um único script, Catcher, no apanhador. O primeiro recurso é o movimento: o apanhador desliza com as teclas de seta e nunca sai do chão.

Manter um número dentro de limites é a função de Mathf.Clamp(value, min, max). Ele retorna min quando o valor é menor que min, max quando é maior que max e, caso contrário, o próprio valor. Esta câmera segue o jogador enquanto ele sobe uma torre, mas sua altura permanece entre 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 retorna um novo número e não altera nada por conta própria, então atribua o resultado. Aplique Clamp depois de todas as alterações do quadro e antes de gravar a posição novamente, e nenhum quadro mostrará o objeto além do limite.

challenge icon

Desafio

Médio

Dê movimento ao apanhador, a barra azul.

  1. Em Update(), copie transform.position.x para float x e, em seguida, some ou subtraia speed * Time.deltaTime conforme a seta pressionada.
  2. Mantenha o apanhador de 2 unidades de largura no chão (x de -5 a 5): x = Mathf.Clamp(x, -4f, 4f);.
  3. Grave x de volta em transform.position, mantendo y e z.

Pressione “Jogar” e mantenha as setas pressionadas: ele para nas bordas. Depois, “Verificar”.

Experimente você mesmo

using UnityEngine;

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

    void Update()
    {
        // Setas: deslize ao longo de x a speed unidades por segundo.
        // Mantenha o catcher inteiro no chão (x de -5 a 5, o catcher tem largura 2).
    }
}

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

Pratique por conta própria: Playground de Unity