Menu
CoddyTech

Geschwindigkeit

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

rb.linearVelocity gibt an, wie sich der Körper gerade bewegt: ein Vector3 in Metern pro Sekunde entlang der x-, y- und z-Achse. Wenn du den Wert ausliest, erfährst du, wohin sich der Körper bewegt, und rb.linearVelocity.magnitude gibt seine Geschwindigkeit an. Wenn du den Wert setzt, ändert sich die Bewegung sofort, ohne Anlauf und unabhängig von der Masse: Ein Kasten mit 1 kg und ein Tresor mit 50 kg, beide auf 2 m/s gesetzt, bewegen sich ab dem nächsten Physikschritt mit genau 2 m/s. Schwerkraft, Reibung und Stöße wirken danach weiter auf ihn ein.

Dieses Go-Kart fährt mit genau cruise m/s vorwärts. Es kopiert die Geschwindigkeit, ändert nur z und weist sie wieder zu, sodass der von der Schwerkraft verursachte y-Wert erhalten bleibt und das Kart weiterhin vom Ende einer Rampe herunterfällt:

void FixedUpdate()
{
    Vector3 vel = rb.linearVelocity;
    vel.z = cruise;            // vorwärts mit genau cruise m/s
    rb.linearVelocity = vel;   // y behält den durch die Schwerkraft entstandenen Wert bei
}

Wenn du auch y auf 0 setzen würdest, würde die Geschwindigkeit durch die Schwerkraft bei jedem Schritt verworfen, und das Kart würde von der Rampe herunterdriften, statt zu fallen. Vor Unity 6 hieß diese Eigenschaft velocity. In älteren Tutorials steht weiterhin rb.velocity: In Unity 6 wird es kompiliert, wobei eine Warnung erscheint, dass velocity veraltet ist und in linearVelocity umbenannt wurde. drag wurde auf die gleiche Weise zu linearDamping. Verwende die neuen Namen.

challenge icon

Aufgabe

Einfach

Der Roboter läuft auf einer erhöhten Plattform. Lass ihn mit den Pfeiltasten mit genau speed m/s laufen (3 im Inspector): links und rechts entlang der x-Achse, oben und unten entlang der z-Achse, wobei die rohen Achsenwerte verwendet werden, damit es keine Beschleunigung gibt.

  • Wenn keine Pfeiltaste gedrückt wird, bleibt er sofort stehen.
  • Die Schwerkraft wirkt weiterhin: Läuft der Roboter über die Kante, fällt er auf den Boden darunter.

Drücke Play und lass ihn über die Kante laufen, dann Check.

Probier es selbst

using UnityEngine;

public class RobotWalk : MonoBehaviour
{
    public float speed = 3f;
    private Rigidbody rb;

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

    void FixedUpdate()
    {
        // Bewege dich mit den Pfeiltasten exakt mit speed und behalte dabei die y-Komponente der Schwerkraft bei
    }
}
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