Menu
CoddyTech

Gravité et masse

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

Un Rigidbody confie son objet à la physique de Unity, comme l’a montré la noix de coco en tombant. À partir de là, la gravité accélère l’objet de 9.81 m/s chaque seconde, et le Rigidbody possède les paramètres qui déterminent comment cela se passe. Deux d’entre eux sont mass, en kilogrammes (1 pour un nouveau Rigidbody), et useGravity (activé pour un nouveau Rigidbody).

La masse ne change pas la vitesse à laquelle les objets tombent. La gravité attire plus fort un corps lourd, et ce corps lourd est d’autant plus difficile à accélérer, exactement dans la même mesure ; ainsi, une caisse de 1 kg et une enclume de 50 kg lâchées de la même hauteur atterrissent à la même image. La masse compte lorsque les corps se poussent les uns les autres : l’enclume écarte la caisse, et la caisse ne fait presque pas bouger l’enclume. Ce ballon de fête a une masse faible et la gravité le laisse tranquille, il reste donc suspendu à l’endroit où la scène l’a placé :

void Start()
{
    Rigidbody rb = GetComponent<Rigidbody>();
    rb.mass = 0.2f;
    rb.useGravity = false;
}

Lorsque useGravity est désactivé, le ballon conserve sa masse et bouge toujours lorsque quelque chose le heurte : seule la gravité cesse de l’attirer. Remets-le à true et la gravité l’attire à nouveau depuis l’endroit où se trouve l’objet. Il n’y a pas non plus d’air dans la physique de Unity, donc une plume tombe comme une brique, à moins que tu ne donnes à son Rigidbody un peu de Linear Damping.

challenge icon

Défi

Facile

La grue tient deux caisses au-dessus du quai : un Safe lourd et une Box légère. Les deux ont un Rigidbody et un script CraneLoad dont l’weight est défini dans l’Inspector (80 pour le Safe, 2 pour la Box).

  • Au démarrage du jeu, définis la masse du Rigidbody sur weight et désactive la gravité pour que la caisse reste suspendue à sa place.
  • Quand tu appuies sur Space, réactive la gravité pour que la caisse tombe.

Appuie sur Play, appuie sur Space et regarde quelle caisse atterrit en premier, puis clique sur Check.

Essayez vous-même

using UnityEngine;

public class CraneLoad : MonoBehaviour
{
    public float weight = 1f;

    void Start()
    {
        // Définir la masse sur weight et empêcher la gravité d'agir
    }

    void Update()
    {
        // Space : laisser la gravité agir à nouveau
    }
}
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