Unityで作ったアプリケーションを閉じたり開いたりするときに表題のイベントが走るのですが、忘れやすいのでメモします。
環境
- Unity: 5.5.1f1
- Android: 5.0.2
- iOS: 10.2.1
コード
適当なMonoBehaviourを継承したクラスに以下のコードを足して実際に実機で動かして試してみます。
private void OnApplicationFocus( bool hasFocus )
{
Debug.Log("OnApplicationFocus:" + hasFocus);
}
private void OnApplicationPause( bool pauseStatus )
{
Debug.Log("OnApplicationPause:" + pauseStatus);
}
private void OnApplicationQuit() {
Debug.Log("OnApplicationQuit");
}
Androidの場合
アプリを開始したとき
OnApplicationPause:False
OnApplicationFocus:True
アプリ起動時にBack Button, Home Button, Overview Buttonを押したとき
以下のボタンが押されたときにそれぞれどのようなログを出すのか調べてみます。
今回はBackButtonが押されたときは、Application.Quit()でアプリを終了するようにしています。
# Back Buttonを押した場合
OnApplicationFocus:False
OnApplicationQuit
# Home Buttonを押した場合
OnApplicationPause:True
OnApplicationFocus:False
# Overview Buttonを押したとき
OnApplicationPause:True
OnApplicationFocus:False
スクリーンロック時
# ロックしたとき
OnApplicationPause:True
# 開いたとき
OnApplicationPause:False
Notificationのメニューを出したとき
OnApplicationFocus:False
iOSの場合
アプリを開始したとき
OnApplicationFocus:True
アプリ使用時にPOWERボタンを押したとき
# 押したとき
OnApplicationFocus:False
OnApplicationPause:True
# ホームボタンで起動し直したとき
OnApplicationFocus:True
OnApplicationPause:False
アプリ使用時にホームボタンを押したときやホームボタンをダブルクリックしたとき
# 押したとき
OnApplicationFocus:False
OnApplicationPause:True
# ホーム画面などでアプリを選択し直したとき
OnApplicationFocus:True
OnApplicationPause:False