OnApplicationQuitにてイベント受ける時に、どのように動作するか?
回答いただいたので忘れないようにメモ
●質問内容
アプリ終了時にデータを保存したいと考えており、
PlayerPrefsを使用して最下段のようなソースを書きました。
■不明点1
unityエディタ上では再生を停止すると、
イベントにブレークする事は確認でき
終了時に値を保存する事が出来ました。
android実機では保存されません。
■不明点2
android実機にてユーザーが任意でアプリを
落とした場合、OnApplicationQuitにイベントは
飛んでくるのでしょうか?
■不明点3
OnApplicationPauseにイベントが飛んできて以降に
バックグラウンドで何かイベントを受け取る方法は
ありますか?
public void OnApplicationQuit()
{
Debug.Log("End");
// ローカルにデータ保存
PlayerPrefs.SetInt(キー名, 値);
PlayerPrefs.Save();
}
■回答内容
■不明点2
android実機にてユーザーが任意でアプリを
落とした場合、OnApplicationQuitにイベントは
飛んでくるのでしょうか?
Activity.finish が実行されるようなケースにおいては OnApplicationQuit が呼ばれるはずです。
ただ、システムメニューやアプリ管理ツールを使って強制停止するようなケースにおいては呼ばれません。
■不明点3
OnApplicationPauseにイベントが飛んできて以降に
バックグラウンドで何かイベントを受け取る方法はありますか?
残念ながら Unity 側には用意されていません。何らかの特殊なプラグインを用いる必要があると考えられます。