Wenn du in deiner Anwendung auf die Eingabe der Oculus Quest Touch Controller zurückgreifen möchtest, dann kannst du die OVRInput Klasse in Unity verwenden.
OVRInput Klasse Unity
Dort findet die ganze Magie statt, also die Weitergabe der Button Inputs über den Controller an deine Unity Anwendung. Im Abschnitt Touch findest du Hinweise zum Mapping. Genau diese Werte kannst du in einem eigenen Skript jederzeit verwenden.
Erstelle dir ein neues C# Skript und verwende die Update-Methode um die Tasten abzufragen, du findest eine Liste alle Befehle auf der Oculus Seite. Ich zeige dir das mit Hilfe der Taste Button One.
Button Mapping
Im ersten Schritt über ein IF-Bedingungsabfrage den Button abfragen, ob dieser gedrückt wird. Danach gibst du über ein print() eine beliebige Meldung aus, um zu verstehen ob der Input überhaupt klappt. Sobald dies funktioniert kannst du deine eigene Logik integrieren.
Füge dein Skript als Komponente an ein leeres oder bestehendes GameObject. Ich erstelle ein neues GameObject und nenne dieses InputManager.
Starte die Anwendung drücke den Button One, also die Taste A auf dem rechten Touch Controller und behalte deine Unity Console im Blick. Unsere Zeichenkette wird einmal ausgegeben, jedes mal wenn du die Taste nach unten drückst.
Unity Console Controller
Dies kannst du natürlich auch mit anderen Tasten machen und hier im Rumpf der Bedingungsabfrage dann deine Logik integrieren. Dafür solltest du aber C# Programmierkenntnisse haben.
Ich zeige dir dazu ein kurzes Beispiel. Beim Drücken der Taste soll ein GameObject instanziiert werden. Dupliziere oder erstelle eine Sphere die über einen Rigidbody mit aktiver Gravity (Erdanziehung) verfügt und positioniere sie an deine gewünschte Stelle. Erstelle daraus jetzt ein Prefab. Erweitere dein InputScript mit einer Logik zum Instanziieren des GameObjects und weise das Prefab zu.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MyButtonInput : MonoBehaviour
{
public GameObject objectToSpawn;
// Update is called once per frame
void Update()
{
// Wurde die Taste ___ auf dem Touch Controller gedrückt?
if(OVRInput.GetDown(OVRInput.Button.One))
{
// Button A wurde gedrückt => Aktion ausführen
print("Button A wurde gedrückt!");
}
}
}
Dadurch fallen jetzt per Knopfdruck Objekte in Form einer Sphere vom Himmel. Diese Logik kannst du für alle anderen Buttons ebenfalls übernehmen und so die Komplexität erweitern.
Hinweis: Mit dem ultimativen Unity Cheat Sheet erhältst du einen detaillierten Überblick über Tipps & Tricks mit dem Umgang von Unity. Sichere dir jetzt das Cheat Sheet, um deine Anwendungen noch einfacher und effektiver erstellen zu können!
Objekte in Form einer Sphere