シェアする

iOSアプリを閉じても再起動されないようにする方法|Unity

シェアする

Unityで作ったスマートフォンアプリは、デフォルトの状態だとアプリを閉じた段階で終了されてしまいます。

閉じた後すぐに再度起動した時は閉じる直前の画面を復元したいのに、アプリが再起動されるのでアクションゲームなどでは致命的です。

そこで今回はUnityで作ったアプリを閉じてもしばらくは完全終了されないように設定する方法を紹介します。

はじめに

今回紹介する方法はUnityで作ったアプリでのみ実装できます。Unity以外でビルドする場合は正しく実装できないので注意してください。

アプリを閉じた時にすぐ終了する設定にしてしまうと、広告を見てもらったタイミングでアプリが終了されてしまうなどアクションゲームなどでは致命的です。

また誤ってアプリを閉じてしまったり、途中でメールを確認できないなど悪いことの方が多いので設定しておきましょう。

ですが注意しなければならないこともあるので、その点は後述します。

アプリを閉じても終了しないようにする

Unityでアプリを閉じても再起動しないようにする方法はとても簡単です。

まず実装したいアプリのPlayerSettingsを開いてください。

PlayerSettingsは、

File >BuildSetting > PlayerSettingsから開くか、

Edit > ProjectSettings > Player

で開くことができます。

スクリーンショット 2016-02-19 12.02.49

続いてプラットフォームをiOSに変更し、「Other Settings」を開いてください。

見た限りだとiOSのみ設定があるようなので、Androidでは設定方法が違う可能性があります。必ずiOS端末で実装しましょう。

スクリーンショット 2016-02-19 12.04.42

OtherSettingsを開くと「Behavior in Background」という項目があるので、「Suspend」に変更してください。

(デフォルトだとExit)

スクリーンショット 2016-02-19 12.09.05

たったこれだけでスマホのホームボタンを押しても、しばらくはアプリが終了されないようになります。

できれば実装しておきたいですが注意点もあります。

注意点

注意点とは言ってもごく当たり前なことなのですが、この設定をしているアプリはバックグラウンドでも終了しないようになります。

つまり、アプリを閉じても常に起動している状態になるということなので、アプリが重たいとバッテリー消費が激しくなってしまうという難点もあります。

この設定だけではアプリ終了後何分でアプリを閉じるなどの設定はできないので注意してください。

バッテリー消費などが大丈夫なアプリであればバックグラウンドでの起動は重要なのでぜひ実装しておきましょう。


>こちらの記事もよく読まれています<


まとめ

今回の方法を使えば、誤ってアプリを閉じてしまった場合やメールを開いた場合、広告を開いたタイミングなどでもアプリが再起動されることはなくなるので、保存する前に消えてしまう危険性がなくなります。

アクションゲームや対戦ゲームなどを作っている人はぜひ実装してみてください。

ではまた。

コメント

  1. より:

    ちょっとだけ補足です

    – Behavior in Backgroundのデフォルト設定はSuspendです
    – バックエンドで終了しない場合でも、バックエンドで常にCPUを消費する訳では無いです。iosが復帰用のメモリだけ残してCPU止めます。バックエンド処理にネイティブプラグイン経由で依頼すれば10分だけ猶予がある位(時間切れで強制サスペンド)です(例外として音楽再生アプリのような特別なAPIを用いて音楽を流すか、某SNSのように10分おきにバックエンド依頼を発行し続ける裏ワザがある)
    – サスペンド中のアプリが保有するメモリは、他のアプリがメモリを使い潰すと自動的に破棄されるので、結果としてアプリがExitします。