La raquette
Leçon 1 sur 19 du cours Jeu Unity : casse-briques de Coddy.
Dans ce cours, tu construis un casse-briques en 3D, une leçon à part entière : une raquette, une balle rebondissante, un mur de briques, des vies, des niveaux et des bonus. Tout se déplace dans le plan x et y à z 0. Les scripts Paddle, Ball, Brick, GameManager et PowerUp sont pour l’instant des squelettes. « Jouer » lance le jeu ; « Vérifier » évalue ton code.
La raquette a un Rigidbody cinématique, déplacé avec rb.MovePosition dans FixedUpdate(), afin que le moteur physique la voie se déplacer. Un corps cinématique traverse les murs, donc le script l’empêche de sortir. Limiter le centre au niveau du mur laisserait la moitié de la raquette à l’intérieur : la limite correspond au mur moins la moitié de la largeur. Avec des murs à -6 et 6 et une raquette de 2 de largeur :
float half = 2f / 2f;
target.x = Mathf.Clamp(target.x, -6f + half, 6f - half);
rb.MovePosition(target);Le centre reste entre -5 et 5, de sorte que les extrémités s’arrêtent exactement aux murs. Lire la largeur depuis transform.localScale.x à chaque étape permet de conserver la bonne limite si la raquette s’agrandit.
Défi
FacileDéplace la raquette entre les murs.
- Dans
FixedUpdate()dePaddle, définisfloat inputà -1 lorsque la flèche gauche ou A est maintenue, à 1 lorsque la flèche droite ou D est maintenue, et à 0 sinon. - Calcule
Vector3 target = rb.position + Vector3.right * input * speed * Time.fixedDeltaTime; - Avec
float half = transform.localScale.x / 2f;, limitetarget.xentre-wallX + halfetwallX - half, puisrb.MovePosition(target);
Appuie sur « Jouer » et fais glisser la raquette contre les deux murs : elle s’arrête contre chacun d’eux. Puis appuie sur « Vérifier ».
Essayez vous-même
using UnityEngine;
using UnityEngine.InputSystem;
public class Paddle : MonoBehaviour
{
public float speed = 14f;
public float wallX = 8f; // les faces intérieures des murs latéraux se trouvent à -wallX et wallX
Rigidbody rb;
void Awake()
{
rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
// Déplace-toi avec les touches fléchées ou A et D, et reste entre les murs.
}
}
Toutes les leçons de Jeu Unity : casse-briques
Entraînez-vous par vous-même : Playground Unity