アプリのライフサイクルの処理
更新日時: 2026/07/23
Horizon OSを使用するMeta VRデバイスの開発を成功させるには、HorizonOSから送信されるライフサイクルイベントを理解する必要があります。Horizonストアでリリースするには、没入型アプリはライフサイクルイベントに対応する必要があります(
VRC.Quest.Functional.2および
VRC.Quest.Input.4による要件)。ライフサイクルイベントに正しく対応することで、ユーザー体験を向上させることができます。
アプリの一時停止イベントは、入力のシミュレーション、レンダリング、受け入れをアプリが停止する必要があるときに、Horizon OSから送信されます。これらのイベントは、まだアプリがOSによって読み込まれている状態にあるものの、ユーザーからは見えず、操作もできない状態になったときに発生します。アプリは、一時停止されたユーザーによるインタラクションを許可しないようにします。詳しくは
VRC.Quest.Functional.2を参照してください。
Horizon OSは複数のアプリの同時実行をサポートできます。例えば、没入型ゲームをプレイしているユーザーは、ウォークスルーの2Dブラウザーウィンドウをプレイ中に表示させておくことがあります。このシナリオでは、ブラウザーウィンドウと没入型ゲームの両方がユーザーに表示されますが、ユーザー入力に応答するアプリは1つのみです。ユーザーが他のアプリに入力を送信しようとすると、それを検知したHorizon OSは、フォーカスを失うアプリとフォーカスを得るアプリ(妥当な場合)に対して、入力フォーカスイベントを送信します。
入力フォーカスを失ったアプリは、トラッキングされたコントローラー/ジェスチャーのレンダリングを停止し、すべての入力を無視する必要があります(
VRC.Quest.Input.4をご覧ください)。ただし、入力フォーカスを失ったときに、オーディオ、レンダリング、シミュレーションがどうなるのかについては、アプリ開発者が決めることができます。例えば、シングルプレイヤーのアクションゲームでは、入力フォーカスを失ったときにすべてを一時停止し、没入型動画プレイヤーでは、動画再生を続行できます。
HMDのマウントイベントとマウント解除イベントは、ユーザーが実際にヘッドセットを装着したり外したりしたときに送信されます。ヘッドセットがマウント解除されると、ユーザーがすぐにヘッドセットを再マウントしない限り、[Settings (設定)] > [Power (電源)] > [Auto Sleep (オートスリープ)]で設定された時間が経過した後にアプリの一時停止イベントが送信されます。
これらのイベントに対応することはVRCの要件ではありませんが、アプリによっては、マウント解除時に一時停止メニューを表示したり、ユーザーを非アクティブとしてマークしたりすることが望ましい場合があります。
Unityアプリケーションは、Horizon OSから送信される以下の一般的なイベントをリッスンまたはチェックできます。
アプリが初期化されたとき:
HMD MountedInput Focus Acquired
ユーザーがHMDを外し、すぐに装着し直す場合
- HMDを外したとき:
HMDUnmounted - HMDを装着し直したとき:
HMDMounted
ユーザーがHMDを外し、[Settings (設定)] > [Power (電源)] > [Auto Sleep (オートスリープ)]で設定した時間が経過してから、再び装着する
- HMDを外したとき:
HMDUnmounted 設定時間の経過後:
Input Focus LostApplication Paused
HMDを装着し直したとき:
HMD MountedApplication UnpausedInput Focus Acquired
Application PausedInput Focus Lost
Application UnpausedInput Focus Acquired