Menu
CoddyTech

Achsen

Teil des Abschnitts Grundlagen des Scripting in Unity der Unity-Journey von Coddy. Lektion 13 von 67.

Input.GetAxis("Horizontal") wandelt die Pfeiltasten links und rechts (sowie A und D) in eine Zahl von -1 bis 1 um: -1 für links, 1 für rechts, 0 für keine der beiden Richtungen. Input.GetAxis("Vertical") macht dasselbe für die Pfeiltasten nach unten und oben (S und W). Ein Aufruf ersetzt zwei ifs, und ein Gamepad-Stick steuert dieselben Achsen ohne zusätzlichen Code.

Die Zahl springt nicht. Mit den Standardeinstellungen von Unity bewegt sie sich mit 3 pro Sekunde auf ihren Zielwert zu. Daher dauert es nach dem Drücken eine Drittelsekunde, bis sie 1 erreicht, und nach dem Loslassen eine weitere Drittelsekunde, bis sie wieder auf 0 fällt. Durch dieses sanfte Abbremsen beschleunigt dieses Hovercraft behutsam und kommt allmählich zum Stillstand:

public float speed = 5f;

void Update()
{
    float h = Input.GetAxis("Horizontal");
    transform.position += new Vector3(h * speed * Time.deltaTime, 0, 0);
}

Input.GetAxisRaw("Horizontal") überspringt das sanfte Abbremsen: In jedem Frame ist der Wert genau -1, 0 oder 1, sodass die Bewegung sofort beginnt und stoppt. Verwende GetAxis für Dinge, die sich schwerfällig anfühlen sollen, und GetAxisRaw für präzise Steuerung. Wenn beide Pfeiltasten gedrückt sind, liefern beide Varianten 0, weil sich die beiden Richtungen aufheben. (In einem Unity-6-Projekt gilt die Einstellung „Active Input Handling“ aus „Mit den Tasten steuern“ auch für Achsen.)

challenge icon

Aufgabe

Einfach

Der Rover soll direkt reagieren, ohne Beschleunigung oder Abbremsen: Mit den Pfeiltasten (oder WASD) steuerst du ihn mit speed Einheiten pro Sekunde nach links und rechts entlang der x-Achse sowie nach oben und unten entlang der z-Achse. Er bewegt sich ab dem Moment, in dem eine Taste gedrückt wird, mit voller Geschwindigkeit und hält an, sobald die Taste losgelassen wird.

Drücke Play, klicke ins Spiel und steuere den Rover, dann drücke Check.

Probier es selbst

using UnityEngine;

public class Rover : MonoBehaviour
{
    public float speed = 4f;

    void Update()
    {
        // Horizontal bewegt sich entlang der x-Achse, Vertical entlang der z-Achse, ohne sanftes Beschleunigen oder Abbremsen.
    }
}
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 Grundlagen des Scripting in Unity