2016-04-18 7 views
3

Wie kann ich die Anzeige programmatisch in Unity für eine auf einem Android-Gerät bereitgestellte App stereoskopisch einstellen?Aktivieren/Deaktivieren von VR aus Code

Ich möchte ein UI-Menü, wo der Benutzer zwischen "VR-Modus" und normalen Modus wechseln kann. Ich möchte den VR-Modus nicht standardmäßig, da dies zur Laufzeit eine Option sein sollte. Ich weiß, dass es eine Einstellung für "Virtual Reality Supported" in den Build-Einstellungen gibt, aber ich möchte nicht, dass dies standardmäßig aktiviert ist.

Antwort

6

Enthalten Sie using UnityEngine.XR; an der Spitze.

Rufen Sie XRSettings.LoadDeviceByName("") mit leerer Zeichenfolge auf, gefolgt von XRSettings.enabled = false;, um VR in der Startfunktion zu deaktivieren, um VR zu deaktivieren. Wenn Sie es später aktivieren möchten, rufen Sie XRSettings.LoadDeviceByName("daydream") mit dem VR-Namen, gefolgt von XRSettings.enabled = true;.

Sie sollten auf einen Rahmen zwischen jedem Funktionsaufruf warten. Das erfordert, dass dies eine Corutine-Funktion ist.

, auch auf einigen VR-Geräten müssen Sie zu bearbeiten gehen ->Projekteinstellungen - vor diesem>Spieler und stellen Sie sicher, dass Virtual Reality unterstützte Check-Box (true) geprüft ist wird funktionieren. Dann können Sie es in der Start-Funktion deaktivieren und jederzeit aktivieren.

EDIT:

Dies ist bekannt für einige VR-Geräte und nicht alle VR-Geräten zu arbeiten. Obwohl es auf Daydream VR funktionieren sollte. Vollständiges Codebeispiel:

IEnumerator LoadDevice(string newDevice, bool enable) 
{ 
    XRSettings.LoadDeviceByName(newDevice); 
    yield return null; 
    XRSettings.enabled = enable; 
} 

void EnableVR() 
{ 
    StartCoroutine(LoadDevice("daydream", true)); 
} 

void DisableVR() 
{ 
    StartCoroutine(LoadDevice("", false)); 
} 

Anruf EnableVR() ermöglichen vr und DisableVR() sie zu deaktivieren. Wenn Sie etwas anderes als Daydream verwenden, übergeben Sie den Namen dieses VR-Geräts an die Funktion LoadDevice in der Funktion EnableVR().

+0

Ich habe das versucht und es hat nichts getan. Gibt es irgendwo diesen Snippet spezifisch um es aktivieren zu können? –

+0

Nein. Welche Unity-Version verwendest du? – Programmer

+0

Version 5.3.4p1 –