この記事でのバージョン
Unity 5.2.2f1 Personal
はじめに
アプリ起動後、すぐに処理を開始したら
スプラッシュがまだ表示されているため、表示が上手くいかないなんてことありますよね。
例えば、Unity無料版だけどロゴ表示したい!
って事でスプラッシュの後にロゴを表示しようとしてみた結果、
スプラッシュ表示中にフェードイン&ロゴ表示時間が過ぎて
ロゴがほとんど見えずに次のシーンへ移動してしまっています。
こうならないように一定時間置いてから処理を開始しようとしても、
端末の処理能力によってスプラッシュの表示時間が異なるので、綺麗に実行出来なかったりします。
isShowingSplashScreen
そんな時に使えるのが、isShowingSplashScreenです。
-----------------------------追記(2017.05.29)
Unity5.6以降はisShowingSplashScreenが非推奨になったので、
SplashScreen.isFinishedを使いましょう。
使い方はこの記事のisShowingSplashScreenとほぼ同じです。
-----------------------------
これがどういうものかと言うと、以下の通りです。
スプラッシュ画面が表示されているか確認します。
アプリケーションが現時点でスプラッシュスクリーンを表示している場合は true を返します。
ちなみに使えるのはUniy5.2からです。
このisShowingSplashScreenを以下のようにUpdateで使う事で、
スプラッシュ表示が終わってから処理を行うことができます。
private void Update() { if (!Application.isShowingSplashScreen) { //スプラッシュ表示後 } }
これを使って先ほどのロゴ表示をやってみた所、
いい感じに出来るようになりました。
なお、UnityEditor上ではスプラッシュ表示はありませんが、
起動してから表示されるまでのラグがあるため上手くいきませんのであしからず。