- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!!モバイルアプリのフォーカスの流れ
!!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}}