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.
Aufgabe
EinfachDer 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
weightund 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
}
}
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
1Rigidbody
Schwerkraft und MasseMit AddForce schiebenMit einem Impuls springenFixedUpdate für PhysikGeschwindigkeitKinematische KörperRückblick: Startrampe2Kollisionen
OnCollisionEnterWas habe ich getroffen?Beim Aufprall zerbrechenAuf dem Boden stehenAbprallen und ReibungCollider-FormenRückblick: Zerstörbare Wand