Menu
CoddyTech

A Raquete

Lição 1 de 19 do curso Jogo Unity: Quebra-Tijolos da Coddy.

Neste curso, você cria Brick Breaker em 3D, um recurso de uma aula: uma raquete, uma bola quicando, uma parede de tijolos, vidas, níveis e power-ups. Tudo se move no plano x e y em z 0. Os scripts Paddle, Ball, Brick, GameManager e PowerUp são apenas estruturas vazias por enquanto. “Jogar” executa o jogo; “Verificar” avalia seu código.

A raquete tem um Rigidbody cinemático, movido com rb.MovePosition em FixedUpdate(), para que a física veja seu movimento. Um corpo cinemático atravessa as paredes, então o script o mantém dentro dos limites. Limitar o centro na parede deixaria metade da raquete dentro dela: o limite é a parede menos metade da largura. Com paredes em -6 e 6 e uma raquete com 2 de largura:

float half = 2f / 2f;
target.x = Mathf.Clamp(target.x, -6f + half, 6f - half);
rb.MovePosition(target);

O centro fica entre -5 e 5, então as extremidades param exatamente nas paredes. Ler a largura de transform.localScale.x a cada passo mantém o limite correto se a raquete crescer.

challenge icon

Desafio

Fácil

Mova a raquete entre as paredes.

  1. Em Paddle's FixedUpdate(), faça float input ser -1 enquanto a seta para a esquerda ou A estiver pressionada, 1 para a seta para a direita ou D e 0 caso contrário.
  2. Calcule Vector3 target = rb.position + Vector3.right * input * speed * Time.fixedDeltaTime;
  3. Com float half = transform.localScale.x / 2f;, limite target.x entre -wallX + half e wallX - half e, em seguida, use rb.MovePosition(target);

Pressione “Jogar” e deslize até as duas paredes: a raquete para em cada uma delas. Depois, pressione “Verificar”.

Experimente você mesmo

using UnityEngine;
using UnityEngine.InputSystem;

public class Paddle : MonoBehaviour
{
    public float speed = 14f;
    public float wallX = 8f;   // as faces internas das paredes laterais estão em -wallX e wallX

    Rigidbody rb;

    void Awake()
    {
        rb = GetComponent<Rigidbody>();
    }

    void FixedUpdate()
    {
        // Mova-se com as setas ou A e D e permaneça entre as paredes.
    }
}

Todas as lições de Jogo Unity: Quebra-Tijolos

Pratique por conta própria: Playground de Unity