Menu
CoddyTech

Schwerkraft und Masse

Teil des Abschnitts Physik und Gameplay der Unity-Journey von Coddy. Lektion 1 von 63.

Ein Rigidbody übergibt sein Objekt der Physik von Unity, wie die Kokosnuss beim Fallen gezeigt hat. Von da an beschleunigt die Schwerkraft das Objekt jede Sekunde um 9.81 m/s, und der Rigidbody hat Einstellungen, die bestimmen, wie das geschieht. Zwei davon sind mass, in Kilogramm (1 bei einem neuen Rigidbody), und useGravity (bei einem neuen Rigidbody eingeschaltet).

Die Masse verändert nicht, wie schnell Dinge fallen. Die Schwerkraft zieht stärker an einem schweren Körper, und der schwere Körper lässt sich genau um denselben Betrag schwerer beschleunigen, sodass eine 1-kg-Kiste und ein 50-kg-Amboss, die aus derselben Höhe fallen gelassen werden, im selben Frame landen. Masse ist wichtig, wenn Körper einander stoßen: Der Amboss stößt die Kiste zur Seite, und die Kiste bewegt den Amboss kaum. Dieser Partyballon hat eine geringe Masse und wird von der Schwerkraft in Ruhe gelassen, sodass er dort schwebt, wo die Szene ihn platziert hat:

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

Wenn useGravity ausgeschaltet ist, hat der Ballon weiterhin seine Masse und bewegt sich weiterhin, wenn etwas gegen ihn stößt: Nur die Schwerkraft zieht nicht mehr. Setze es zurück auf true, und die Schwerkraft zieht wieder, egal, wo sich das Objekt befindet. Auch in der Physik von Unity gibt es keine Luft, daher fällt eine Feder wie ein Ziegelstein, sofern du dem Rigidbody nicht etwas Lineare Dämpfung gibst.

challenge icon

Aufgabe

Einfach

Der Kran hält zwei Kisten über dem Dock: einen schweren Safe und eine leichte Box. Beide haben ein Rigidbody und ein CraneLoad-Skript, dessen weight im Inspector festgelegt wird (80 beim Safe, 2 bei der Box).

  • Setze beim Start des Spiels die Masse des Rigidbody auf weight und schalte die Schwerkraft aus, damit die Kiste an ihrer Position hängen bleibt.
  • Wenn die Leertaste gedrückt wird, lass die Schwerkraft wieder wirken, damit die Kiste herunterfällt.

Drücke Play, drücke die Leertaste und beobachte, welche Kiste zuerst landet, und klicke dann auf Check.

Probier es selbst

using UnityEngine;

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

    void Start()
    {
        // Setze die Masse auf weight und verhindere, dass die Schwerkraft zieht
    }

    void Update()
    {
        // Space: Lass die Schwerkraft wieder wirken
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Physik und Gameplay