Input in Unity
Interagieren in Unity
Um den Nutzer*innen in den von uns gestalteten Unity Programmen die Möglichkeit zu geben zu interagieren, sollen hier einige generelle Interaktionsmodi aufgelistet und erklärt werden.
Keyboard Input
Um in einem Unity Script abzufragen, ob eine bestimmte Taste auf dem Keyboard gedrückt wurde, nutzen wir die Input Klasse. Unity Dokumentation hier. In Code verwenden wir folgende Abfrage meist in unserer Update() Funktion, da diese Funktion in jedem Frame aufgerufen wird, und wir den Zustand des Keyboards nicht versehentlich verpassen wollen:
if (Input.GetKeyUp(KeyCode.Y)){ //do something when the key y has been released }
Mouse Input
Abfrage der Mausezeigerposition
Unity gibt uns mehrere Möglichkeiten, die Position des Mauszeigers sowie seine relative Veränderung abzufragen.
Einerseits kann direkt die Position des Mauszeigers als Bildschirmkoordinaten durch abgefragt werden (ähnlich mouseX und mouseY in Processing):
Input.mouseposition
Mehr Infos dazu in der Dokumentation zu Input in Unity.
Andererseits können wir auch auf die Veränderung der Mausposition über Zeit zugreifen:
Input.GetAxis("Mouse X")
Mehr Infos und Beispielcode dazu in der Dokumentation von Input.GetAxis().
Letzteres können wir nutzen, um die Rotation der Kamera per Mausbewegung zu steuern, ähnlich wie wir es aus Videospielen kennen:
- dazu müssen wir ein Script schreiben, das auf dem GameObject mit Camera-Component liegt (oder auf das GameObject mit Camera Component zugreift)
- in diesem GameObject müssen wir den Transform Component so verändern, dass er anhand der Mausbewegung seine Rotation ändert.
- das müssen wir in jedem Frame machen (also in der Update Funktion)
Der Code dazu könnte in etwa wie folgt aussehen:
void
Klicken auf ein Objekt
Touch Input
Netzwerk Input
Auch durch Interaktionen von anderen Computern aus können in einem Unity Programm Dinge passieren. Eine genauere Beschreibung möglicher Netzwerkinteraktion steht auf der OSC in Unity Seite.
Position und Rotation des Devices
Position via GPS
Rotation via Gyroskop
Position und Rotation via ARCore
UI Interaktion
Die Interaktion durch sogenannte UI Elemente in Unity ist stärker strukturiert als die oben angegebenen Beispiele und bedarf einer längeren Kontextualisierung. Mehr Informationen zu UI Elementen gibt es auf der UI in Unity Seite.