(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!

    

スプラッシュの表示が終わってから処理を行う【Unity】


このエントリーをはてなブックマークに追加


この記事でのバージョン
Unity 5.2.2f1 Personal

はじめに

アプリ起動後、すぐに処理を開始したら

スプラッシュがまだ表示されているため、表示が上手くいかないなんてことありますよね。


例えば、Unity無料版だけどロゴ表示したい!

って事でスプラッシュの後にロゴを表示しようとしてみた結果、


f:id:kan_kikuchi:20151112133642g:plain


スプラッシュ表示中にフェードイン&ロゴ表示時間が過ぎて

ロゴがほとんど見えずに次のシーンへ移動してしまっています。


こうならないように一定時間置いてから処理を開始しようとしても、

端末の処理能力によってスプラッシュの表示時間が異なるので、綺麗に実行出来なかったりします。


isShowingSplashScreen

そんな時に使えるのが、isShowingSplashScreenです。


-----------------------------追記(2017.05.29)

Unity5.6以降はisShowingSplashScreenが非推奨になったので、

SplashScreen.isFinishedを使いましょう。



使い方はこの記事のisShowingSplashScreenとほぼ同じです。

-----------------------------


これがどういうものかと言うと、以下の通りです。

スプラッシュ画面が表示されているか確認します。
アプリケーションが現時点でスプラッシュスクリーンを表示している場合は true を返します。


ちなみに使えるのはUniy5.2からです。


このisShowingSplashScreenを以下のようにUpdateで使う事で、

スプラッシュ表示が終わってから処理を行うことができます。

private void Update() {
  if (!Application.isShowingSplashScreen) {
    //スプラッシュ表示後
  }
}


これを使って先ほどのロゴ表示をやってみた所、


f:id:kan_kikuchi:20151112134459g:plain


いい感じに出来るようになりました。


なお、UnityEditor上ではスプラッシュ表示はありませんが、

起動してから表示されるまでのラグがあるため上手くいきませんのであしからず。


おわりに

これのためだけにUnityをアプデしたぐらい、待ち望んでいた機能でした。

ちなみに他のUnity5.2の新機能などはこちらから見られます。