Input in Unity: Unterschied zwischen den Versionen

Aus hyperdramatik
Zur Navigation springen Zur Suche springen
 
(kein Unterschied)

Aktuelle Version vom 5. Mai 2021, 13:37 Uhr

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.