Oculus Quest2でのOnApplicationFocusとOnApplicationPauseの挙動まとめ【Oculus,Quest2,Unity】

いろいろ詰まったためメモしておきます. Questでのアプリ開発でアプリを終了したときに何かの処理をしたいと思うことが多々あるかと思います. (間違えている可能性もがあるため,コメントまたはtwitterのDMにてご指摘等お待ちしています)

環境

  • Unity 2019.4.5f1
  • Oculus XR Plugin 1.7.0
  • XR Plugin Management 3.2.16
  • Oculus Integration 25.0

挙動まとめ表

関数名 UI表示[1] 時間経過[2] アプリ終了
OnApplicationFocus(bool hasFocus) 変化なし true → false true → false
OnApplicationPause(bool pauseStatus) false → true 変化なし false → true

[1] Oculusボタンを押してメニュー画面を出した状態
[2] HMDを外してHMDが非アクティブになった状態

またそれぞれの関数のEventStatusの初期値は以下の通りです.

  • OnApplicationFocus(bool hasFocus) : true
  • OnApplicationPause(bool pauseStatus) : false

その他の関数の挙動

  • OnDestroy() 呼ばれなかった
  • OnApplicationQuit() 呼び出されなかった

追記 以下のサイトより,Oculus Goの時代から残る問題として上記の二つが呼ばれない問題が残っているそうです. forum.unity.com

関連サイト

developer.oculus.com

stackoverflow.com

qiita.com

greenkour.hateblo.jp

pafu-of-duck.hatenablog.com

developer.android.com

docs.unity3d.com