Achsen
Teil des Abschnitts Unity-Scripting: Grundlagen der Unity-Journey von Coddy. Lektion 20 von 85.
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 Taste. Input.GetAxis("Vertical") macht dasselbe für die Pfeiltasten unten und oben (S und W). Ein Aufruf ersetzt zwei ifs, und ein Gamepad-Stick steuert dieselben Achsen ganz 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 noch einmal eine Drittelsekunde, bis sie wieder auf 0 fällt. Durch dieses sanfte Einsetzen beschleunigt dieser Hovercraft allmählich und gleitet bis 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 Einsetzen: Der Wert ist in jedem Frame 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 Methoden 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.)
Aufgabe
EinfachLass den Rover präzise fahren, ohne sanftes Abbremsen.
- Lies in
Update()float h = Input.GetAxisRaw("Horizontal");undfloat v = Input.GetAxisRaw("Vertical");aus. - Addiere
new Vector3(h * speed * Time.deltaTime, 0, v * speed * Time.deltaTime)zutransform.position.
Klicke auf „Spielen“, klicke ins Spiel und fahre mit den Pfeiltasten oder WASD: Der Rover fährt sofort los und hält sofort an. Klicke anschließend auf „Prüfen“.
Probier es selbst
using UnityEngine;
public class Rover : MonoBehaviour
{
public float speed = 4f;
void Update()
{
// Horizontal steuert entlang der x-Achse, Vertical entlang der z-Achse, ohne sanftes Beschleunigen oder Abbremsen.
}
}
Alle Lektionen in Unity-Scripting: Grundlagen
1C#-Grundlagen in Unity
Hallo, UnityVariablenDezimalzahlen brauchen ein fText in der KonsoleVariablen, die sich etwas merkenIf und ElseZahlen vergleichenRückblick: Münzsammler7Schleifen und Methoden
Wiederholen mit forSchleifen in SchleifenEine Methode schreibenMethoden mit RückgabewertArraysRückblick: Treppe10Dinge finden
Nach Namen suchenTagsNach Typ suchenReferenzen schlagen SuchenUnitys NullRückblick: nächste Münze13Projekt: Weiche den Blöcken aus
Der LäuferBlöcke vom Himmel2Bring es in Bewegung
Platziere den WürfelBewege ihn in jedem FrameDrehe ihn jede SekundeSteuere mit den TastenRückblick: Fahre den Würfel5Vektoren
Vektoren addierenRichtungenLokaler und globaler RaumDiagonale GeschwindigkeitAbstand zwischen ObjektenVector3 ist eine StrukturRückblick: Drohnenpilot8GameObjects und Komponenten
Referenzen im InspectorEine Komponente abrufenFehlende KomponentenEine Komponente hinzufügenRequireComponentEin- und AusblendenRückblick: Lichtschalter11Prefabs und Erzeugen von Instanzen
Prefabs und InstantiateNach Zeitintervall erzeugenIn einem Raster erzeugenListen von ObjektenDas Neueste zurücknehmenZerstörenZufälliges ErzeugenRückblick: Feuerwerk14Abschließende Herausforderungen
MünzmagnetDie Straße überquerenStraßenverkehrTurmbauerLanden oder verfehlen3Der Inspector
Inspector-FelderSerializeFieldFließkommazahlen und MathfInspector-AttributeRückblick: Aufzug6Transformationen und Hierarchie
Eltern und KinderHisse die FlaggeSkalierungDinge anschauenAuf einen Punkt zubewegenRückblick: Mond in Umlaufbahn9Projekt: Fang den Stern
Der FängerEin fallender Stern12Der Lebenszyklus eines Skripts
Awake und StartUpdate und LateUpdateOnEnable und OnDisableDie Reihenfolge im LebenszyklusRückblick: Lifecycle LoggerÜbe selbstständig: Unity-Playground