Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Skripting in Unity Grundkurs

Input abfragen: "GetAxis"

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Der Input-Manager von Unity definiert sich über Achsen. Diese können natürlich auch per Code abgefragt werden. Dieses Video zeigt Ihnen, wie "GetAxis" dafür verwendet wird.
08:08

Transkript

Wenn wir uns nochmal den InputManager von Unity ins Gedächtnis rufen, dann sehen wir ja hier, dass wir Achsen vergeben können. In den InputManager kommen wir wie gewohnt über Edit Project Settings und hier sind zur Zeit die Standard 18 Achsen von Unity vergeben. Jetzt wollen wir Input, also irgendeine Art von Eingabe, über diese Achsen abfragen. Hierfür nehmen wir den InputManager, der in der Szene vorhanden ist, und der hat natürlich wieder ein Skript zugewiesen, heißt genauso, InputManager. Hier drin sehen wir jetzt noch, wir fragen Input über GetKey und GetButton ab, was ich gerade gemacht hab, unsere GetButton-Abfrage hab ich kurz auskommentiert, mit dem Shortcut Steuerung K+C. Ich werde mir mal hier wieder etwas rausklauen, denn es bleibt dabei, dass wir Input abfragen möchten. also natürlich das Schlüsselwort Input benutzen Liebes Programm, ich möchte jetzt Input abfangen. Und jetzt geben wir wieder Get ein, nur dieses Mal ist es weder GetButton noch GetKey, sondern GetAxis. Und hier haben wir schon wieder unseren Schlüsselbegriff der Achsen, also auch der Achsen, die ich hier im InputManager festgesetzt habe. Diese Abfrage, diesen Befehl finalisiere ich jetzt noch mit zwei runden Klammern und einem Semikolon, und natürlich fehlt jetzt wieder hier der Inhalt, welche Achse soll ich denn jetzt überprüfen oder welche Achse soll ich überhaupt überwachen. Hier geht es dann nach dem Namen der Achse. Auch hier ist der exakte Name sehr sehr wichtig, denn auch Groß- und Kleinschreibung werden berücksichtigt. Also am besten gehen wir in den InputManager rein und kopieren uns den Namen, gehen dann in Visual Studio, und hier wird ja eine Zeichenkette verlangt, das heißt, wir brauchen die Anführungszeichen, und fügen den Namen dazwischen dann ein. Das ist eigentlich der Kernpunkt einer Abfage der Achsen. So wird eine Achse abgefragt, diese muss natürlich hier in unserem InputManager auch existieren, denn wenn das nicht der Fall ist, dann können wir die Achse natürlich auch nicht abfragen. An sich passiert jetzt noch nicht viel, das Skript wird nichts tun, hier wird eigentlich nur eine Referenz auf diese Achse hergestellt, aber damit wird noch nicht gearbeitet. Ich werde jetzt folgendes herstellen, nämlich Debug.Log - Hopp, Debug soll das natürlich heißen - Debug.Log und dann unseren gerade geschriebenen Begriff, unseren gerade geschriebenen Befehl in die Debug-Funktion übergeben. Debug.Log schreibt ja in unsere Konsole rein, und was es schreibt, ist das, was hier dahintersteckt. Ein kurzer Vergleich noch zu GetKey zum Beispiel oder GetButton, in dieser if-Funktion ging es immer darum, bekomme ich Input über den gerade definierten Key oder über den gerade definierten Button, ja oder nein. Super für eine Bedingung, die will ja nur wissen, stimmt die Bedingung oder trifft sie nicht zu. Hier lassen wir uns jetzt tatsächlich Werte ausgeben. Schauen wir einfach mal, was passiert. Kurz überprüfen wir noch, okay, unsere horizontale Achse, welche Buttons gehören dazu, zum Beispiel a oder d, left and right bedeutet links und rechts auf den Pfeiltasten. Dann schauen wir mal, was passiert, das Skript ist zugewiesen, sollte klappen, und wenn ich jetzt hier die entsprechenden Tasten drücke, sehen wir, dass aus der Null, die gerade durchlief, tatsächlich Werte entstehen, die sich sehr sehr stark der Eins annähern. Lass ich die Tasten los, drücke ich also gar keine Taste, zählt er nur die Null hoch. Drücke ich links oder rechts, a oder d, natürlich muss ich da vorher in die Game View klicken, passen sich die Werte an, und erreichen teilweise sogar die Eins, oder kommen sehr sehr sehr nah an diese Eins ran. Also lassen wir uns die Rückgabewerte dieser Achsenabfrage zur Zeit in die Konsole schreiben. Hier hinter steckt also tatsächlich ein Float-Wert, ein Wert mit Kommazahl, den wir abfragen können. Was hier jetzt nicht möglich wäre, wäre zum Beispiel das hier. Dafür kopiere ich mir diesen Zeilenblock, und entferne die Kommentarzeichen, und arbeite jetzt zum Beispiel mal mit Achsen, die ich in diese Bedingungen hinein füge, und jetzt wird er mir sagen: Moment mal, du versuchst hier eine Bedingung abzufragen, aber dieser ganze Wert gibt überhaupt nicht true und false zurück. Wenn ich Knöpfe abfrage, ob sie überhaupt gedrückt werden, dann kann ich sagen, ja, sie werden gedrückt, oder nein, sie werden nicht gedrückt. Hier gibt es jedoch immer einen Rückgabewert, in Form einer Zahl. Drücke ich die Taste nicht, die ich über diese horizontale Achse definiert habe, wird immer eine Null rauskommen. Gibt es irgendeine Art von Input, wird etwas anderes als null, und zwar immer ein Wert zwischen null und eins herauskommen. Das haben wir ja auch gerade hier gesehen, hier sehen wir die Werte zwischen null und eins. Hab ich nach links gedrückt, sind die Werte negativ, aber dann null und minus eins, und hab ich nach rechts gedrückt, zwischen null und positiv eins. Hier müsste ich also anders abfragen, zum Beispiel "ungleich null". Wenn also dieser ganze Ausdruck, hinter dem ja immer eine Zahl steht, nicht null ist, dann tue etwas. Und hier würde ich dann zum Beispiel "horizontal wird gedrückt", oder "die Achse horizontal wird betätigt", irgendwie so was in der Richtung hineinschreiben, und dann funktioniert das Ganze auch wieder, aber auch wirklich nur, wenn ich denn die Tasten drücke, denn, wie wir sehen, wir drücken keine Taste, es kommt trotzdem eine Null zurück, und wenn ich jetzt die horizontale Achse betätige, hier wird eine ganze Menge anderes Zeug ausgegeben, aber wenn wir hier mal hoch scrollen, dann sollten wir irgendwo hier sehen, horizontal wird gedrückt. Okay, das ist auch richtig, wir haben die entsprechenden Tasten ja gedrückt, die für die horizontale Achse definiert wurden. Fassen wir das Ganze nochmal zusammen: Input.GetAxis und dann der Name der Achse, gibt kein true oder false zurück. gibt keinen "Ja, ich werde gedrückt", "Nein, ich werde nicht gedrückt" Wert zurück. sondern immer eine Zahl, eine Fließkommazahl, einen Float-Wert. Mit diesem muss ich natürlich auch als Float-Wert arbeiten, und kann ihn nicht ganz so leicht in einer Bedingung abfragen, wie zum Beispiel hier, sondern muss immer gegen einen Wert abfragen, bist du null, oder bist du größer eins, bist du kleiner eins und so weiter. Hierbei ist außerdem noch wichtig, dass der Rückgabewert niemals größer als eins, oder kleiner als minus eins wird, man spricht da von einem Wertebereich von null bis eins, das kann sowohl ins Positive als auch ins Negative umschwenken. Merkt man sich diese Gegebenheiten, kann mit GetAxis sehr gut nach Achsen abgefragt werden, die hier im InputManager definiert wurden. und so können Bewegungen des Charakters zum Beispiel sehr gut umgesetzt werden.

Skripting in Unity Grundkurs

Greifen Sie mithilfe von C#-Skripts dynamisch in Ihr Unity-Projekt ein. Auch Programmier-Neulinge lernen Schritt für Schritt den Einstieg ins Skripting.

4 Std. 50 min (40 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Anleitung für Unity 5-Nutzer:

  • Schritt 1: Projekt in Unity 5 öffnen und die Meldung bestätigen, dass das Projekt ein Upgrade bekommt.
  • Schritt 2: Wenn die Meldung kommt, dass die API upgedatet werden muss, diese auch bestätigen

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!