MRが楽しい

MRやVRについて学習したことを書き残す

Questアプリで起動時の読み込み中スクリーンをパススルーで表示する

本日はUnityの小ネタ枠です。
Questアプリで起動時の読み込み中スクリーンをパススルーで表示する方法です。

Questアプリの読み込み中スクリーン

Questアプリを起動すると通常、以下の2種類のスクリーンが実行されます。
・読み込み中スクリーン
・スプラッシュスクリーン

読み込み中スクリーンは通常アプリ起動時に黒い背景に3点ドットで表示されます。
developers.meta.com

スプラッシュスクリーンは読み込み中スクリーン後にアプリで設定された2D画像などが表示されます。
Unityで開発されたアプリケーションはデフォルトだとUnityロゴが表示されます。
developers.meta.com

今回は読み込み中スクリーンをパススルーに設定し、スプラッシュスクリーンを無効化することでQuestメニューからアプリ起動までを一貫してパススルーで表示してみます。

読み込み中スクリーンをパススルーに設定する

読み込み中スクリーンをパススルーに設定するにはマニフェストファイルへの設定が必要です。
メニューから[Edit -> Project Settings]を開き、[Player]タブから[Publising Settings -> Build -> Custom Main Manifest]を有効にします。

生成されたAndroidManifest.xmlファイルを開き、以下の設定を追加します。

<meta-data android:name="com.oculus.ossplash.background" android:value="passthrough-contextual"/>

これで読み込み中スクリーンがパススルーで表示されるようになります。

スプラッシュスクリーンを無効化する

スプラッシュスクリーンを無効化するにはプロジェクト設定を変更します。
メニューから[Edit -> Project Settings]を開き、[Player]タブから[Splash Image]パネルを開きます。

[Splash Screen -> Show Splash Screen]のチェックを外して、オブジェクトを注視していないときでもイベントが発生するようにします。
これでスプラッシュスクリーンが表示されなくなります。

スプラッシュスクリーンの無効化はUnity2023以前のバージョンでは Plus, Pro, Enterprise いずれかのライセンスでのみ可能です。
Unity6ではPersonalを含む全てのライセンスでスプラッシュスクリーンを無効化できます。
docs.unity3d.com

なお筆者の調査ではスプラッシュスクリーンをパススルーで表示することはできませんでした。