Jump to content
Unity Insider Forum

Input.GetAxis


markusk

Recommended Posts

Hallo,

irgendwie hab ich noch nicht so ganz verstanden was Input.GetAxis macht. Hab so einiges über Google gefunden, aber keine Ahnung, irgendwie hat sich das 100%ige Verständnis noch nicht eingestellt.

Kann mir das jemand erklären? Was ich bisher rausgefiltert hab ist daß die Methode float-Werte zwischen -1 und +1 liefert.

Und daß -1 bei vertikaler Achse (Input.GetAxis("vertical")) bedeutet daß "runter" gedrückt wurde bzw. umgekehrt +1 daß "rauf" gedrückt wurde, aber was bedeutet 0 bzw. die Werte dazwischen?

lg, Markus

Link to comment
Share on other sites

Diese Input-Methoden sind dafür da, dass verschiedene Input-Geräte alle zusammengefasst werden und du nicht mehr einzelne Tasten abfragen musst. Damit ist bei der Standardeinstellung die Achse "Vertical" auch nicht nur abgedeckt, ob du W oder S (oder Pfeiltaste oben/unten) drückst, sondern auch der linke Stick eines Gamepads.

Wie @chrische5 schreibt, ist 0 eben "nichts", also weder W noch S gedrückt, und beim Gamepad ist der Stick einfach in der Mitte. Wenn du W drückst, gibt "Vertical" 1 zurück. Wenn du deinen linken Stick ganz nach oben drückst, gibt's auch eine 1. Aber wenn du den Stick nur halb hoch drückst, dann gibt's auch nur eine 0.5.

vor 1 Stunde schrieb chrische5:

GetAxisRaw gibt nur 0 oder 1 zurück. 

Also... kann sein, dass du das richtige meinst, aber so ausgedrückt stimmt es nicht. GetAxis und GetAxisRaw machen prinzipiell dasselbe, nur dass GetAxis noch komisches Gedödel mit den Werten treibt.

GetAxis Raw gibt dir 1:1 die Werte zurück, die reinkommen. Genau der aktuelle Wert vom Stick oder eben -1, 0 oder 1 für Tastatur-Tasten. GetAxis dagegen versucht, den Unterschied zwischen Gamepad und Tastatur etwas zu verringern. Wenn du einen Gamepad-Stick oder einen Joystick nach oben drückst, hast du selten den Stick innerhalb von einem Frame (was bei 60 fps 0.0166 Sekunden entspricht) von der Mitte ganz an die Kante gewuchtet. Du hast da in der Regel eine kurze Übergangszeit von 0 bis 1 bzw. -1, wo der Stick noch auf dem Weg ist. Dasselbe gilt für das Zurückkommen zur Mitte, also 0. Und diesen Übergang simuliert GetAxis für Tastaturtasten. Statt wie GetAxisRaw bei Tastendruck *plop* von 0 auf 1 zu wechseln, animiert GetAxis den Wert, den es zurückgibt, für eine sehr kurze Zeit.

GetAxisRaw gibt aber bei analogen Inputs (also Sticks und so) auch ganz normal alle möglichen Werte zwischen -1 und 1 zurück, und generell halt zwischen -1 und 1.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...