Menu
CoddyTech

La balle roulante

Fait partie de la section Physique et gameplay du Journey Unity de Coddy. Leçon 27 sur 63.

Ce chapitre crée un petit jeu, Coin Rush. Tu fais rouler une balle dans une arène entourée de murs à l’aide des flèches et tu ramasses des pièces avant que le temps ne soit écoulé. Deux scripts se partagent le travail, comme dans un projet Unity : Ball déplace la balle et gère le score et le chronomètre, tandis que Coin se trouve sur chaque pièce. Coin.cs commence par être une classe vide, que la prochaine leçon complétera.

Une balle roule quand tu la pousses au lieu de la déplacer directement. Pousse son Rigidbody avec AddForce et laisse sa rotation libre : la force déplace la balle, et le frottement du sol agrippe le bas de la balle et la fait tourner. Cette boule de bowling roule sur sa piste tant que la barre d’espace est maintenue enfoncée :

public float push = 6f;
private Rigidbody rb;

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

void FixedUpdate()
{
    if (Input.GetKey(KeyCode.Space))
    {
        rb.AddForce(Vector3.forward * push);
    }
}

Une balle qui roule sans glisser tourne à une vitesse égale à sa vitesse de déplacement divisée par son rayon. Ainsi, une balle de rayon 0.5 se déplaçant à 3 unités par seconde tourne à 6 radians par seconde (rb.angularVelocity). Modifie plutôt son transform.position, ou bloque sa rotation dans les contraintes du Rigidbody, et elle glissera comme une rondelle sans tourner. Une sphère unie d’une seule couleur a le même aspect dans les deux cas : pour voir le roulement, observe Angular Velocity dans la section Info du Rigidbody pendant que le jeu tourne.

challenge icon

Défi

Moyen

Démarre Coin Rush avec la balle. Dans l’inspecteur, attribue à Ball une force de 10.

  • Dans Start(), stocke le Rigidbody de la balle dans rb.
  • Dans FixedUpdate(), pousse la balle avec les flèches : Input.GetAxis("Horizontal") le long de x et Input.GetAxis("Vertical") le long de z, dans les deux cas multipliés par force.
  • Laisse sa rotation libre pour qu’elle roule.

Laisse Coin.cs tel quel pour le moment. Appuie sur Play, clique sur le jeu et roule dans l’arène, puis clique sur Check.

Essayez vous-même

using UnityEngine;

public class Ball : MonoBehaviour
{
    public float force = 10f;
    private Rigidbody rb;

    void Start()
    {
    }

    void FixedUpdate()
    {
        // Déplace la balle avec les flèches : Horizontal sur l’axe x, Vertical sur l’axe z.
    }
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Physique et gameplay