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.
Desafio
FácilMova a raquete entre as paredes.
- Em
Paddle'sFixedUpdate(), façafloat inputser -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. - Calcule
Vector3 target = rb.position + Vector3.right * input * speed * Time.fixedDeltaTime; - Com
float half = transform.localScale.x / 2f;, limitetarget.xentre-wallX + halfewallX - halfe, em seguida, userb.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