トップ 一覧 検索 ヘルプ RSS ログイン

unity_script_mobile_focus_pauseの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!モバイルアプリのフォーカスの流れ

!!MonoBehaviourのコールバック関数

MonoBehaviour派生クラスのコールバックで、
OnApplicationFocus/OnApplicationPause/OnApplicationQuitの3関数があります。
また、アプリ起動時にはじめに通る「Start」関数も含め、呼び出し順について記載します。

!Start
 void Start () {
 }
スクリプトが呼び出される始めの1回呼び出されます。
Updateがよばれる前に呼ばれます。初期化処理などはここに記載することになります。

!OnApplicationFocus
 void OnApplicationFocus(bool focusStatus) {
 }
アプリケーションにフォーカスされたとき、またははずれるときに呼ばれます。
第一引数がtrueの場合はフォーカスされた、falseの場合はフォーカスが外れた。

!OnApplicationPause
 void OnApplicationPause(bool pauseStatus) {
 }
アプリケーションが一時停止/再開されたときに呼ばれます。
第一引数がtrueの場合は一時停止、falseの場合は一時停止から再開。

!OnApplicationQuit
 void OnApplicationQuit() {
 }
アプリケーションが終了するときに呼ばれます。

!!Android環境

Android環境(Nexus7)で確認。
iOSでは異なるかもしれないため、別途追記予定。

!アプリを起動して終了

単純に、アプリを起動して「Application.Quit();」で終了するまでの流れ。
他のアプリへの切り替えは行わず。

+OnApplicationFocus (true) <== アプリ起動
+Start
+OnApplicationFocus (false) <== アプリ終了(スクリプト内部でApplication.Quit()を呼んだ)
+OnApplicationQuit

この場合は、Pauseは呼ばれないようです。

!アプリを起動して他のアプリに切り替え

+OnApplicationFocus (true) <== アプリ起動
+Start
+OnApplicationPause (true) <== 他のアプリに切り替え

この後、アプリケーションに再び戻ると

+OnApplicationFocus (false) <== 他のアプリから復帰
+OnApplicationFocus (true)
+OnApplicationPause (false)

という流れに。

!アプリを起動してスリープ(端末のハードボタンを押す)

+OnApplicationFocus (true)  <== アプリ起動
+Start
+OnApplicationPause (true) <== スリープ

この後、スリープ状態から復帰すると、

+OnApplicationPause (false) <== スリープから復帰

という流れに。

これより、自動的にアプリの情報を保存したい場合は「OnApplicationPause(true) 」「OnApplicationQuit」で行う。
自動的にアプリの情報を読み込む場合は「Start」「OnApplicationPause(false)」で行う。
とすると、よいかもしれません。

なお、pauseが行われた「OnApplicationPause (true)」から、pauseが解除される「OnApplicationPause (false)」の間はUpdate関数は呼ばれません。

----
{{lastmodified}}