godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
90.71k stars 21.12k forks source link

Quest VR system breaks after deployment of Android app set to portrait orientation #48262

Open goatchurchprime opened 3 years ago

goatchurchprime commented 3 years ago

Godot version: 3.3-stable

Godot Oculus Mobile Plugin Version 3.0.1

OS/device including version: Quest2 VR

GLES2

Issue description: If you Export/Deploy a Godot VR project to the Android based Quest2 VR and you have Project -> Project Settings -> Display -> Window -> Handheld -> Orientation set the "portrait" instead of the default "landscape" then the Quest enters an unrecoverable state which requires a reboot.

Obviously this setting needs to be ignored in the Quest as it is good for nothing except breaking things. It is slightly problematic that this setting is in the global Project Settings, rather than the individual Export Presets, given that the phone and a quest VR are quite different devices. I found this bug because I was experimenting with VR networking and using a plain Android phone as one of the players. Having a portrait setting made it easier to set up a debug control panel on the lower half of the screen (which you wouldn't want to have in VR).

Steps to reproduce: See above. FAO @BastiaanOlij

Minimal reproduction project: portrait_vr_bug.zip

BastiaanOlij commented 3 years ago

Auch, @m4gr3d how are we going to handle this?

m4gr3d commented 3 years ago

Interesting issue 🤔

@goatchurchprime let me try to reproduce it and clarify with Oculus whether this is intended behavior.

@BastiaanOlij If reproducible, a fix would be straightforward. For example we can override the orientation to always be landscape when Oculus VR mode is detected.

BastiaanOlij commented 3 years ago

@BastiaanOlij If reproducible, a fix would be straightforward. For example we can override the orientation to always be landscape when Oculus VR mode is detected.

I may be mixing up with iOS but I remember the export setting which orientations are allowed. But yeah it sounds like looking into disabling the orientation check and making sure the orientation is always landscape in VR mode should work. We have to be careful though because especially in AR orientation may still be a factor.

I think for Godot 4 we should consider adding something to the XRInterface that lets Godot know if orientation should be fixed

m4gr3d commented 3 years ago

@BastiaanOlij We removed the export orientation settings in PR #43511 as they were conflicting with the project orientation settings.