かさたな日記

主にUnityを使った制作記録。書いてる人は初心者です。一緒に頑張ろう。

自分用Unityメモ:ポーズ時と終了時に処理を行う

OnApplicationPauseとOnApplicationQuitで
それぞれ、ポーズ時や終了時に処理を行うことが出来るみたい。

ここで言うポーズする、とはアプリをバックグランドに置くことを指します。
復帰時に一時停止させておく処理を挟むとアクションゲームなどでは親切かも。

終了時にはデータの保存などが主な処理になると思いますが、
これちょっと微妙に不安定と言うか、
ユーザーのゲーム終了の仕方によっては絶対呼ばれるとは限らないので
保存処理をここだけに置いておくのは危ないと思います。

あとWebGLのゲームなんかだと、
終わるときはブラウザバックか閉じるか、になると思いますが
この場合もやっぱり呼ばれないみたいなので注意。

今作ってる1週間ゲームジャムのセーブが保存されないと思ったらこれでした...。

    
    //アプリケーションのポーズ時
    void OnApplicationPause(bool pauseStatus)
    {
        if (pauseStatus)
        {
            Debug.Log("ポーズしました");
        }
        else
        {
            Debug.Log("ポーズから復帰しました");
        }
    }

    //アプリケーションの終了時
    void OnApplicationQuit()
    {
        Debug.Log("アプリケーションを終了します");
    }