この記事でのバージョン
Unity 5.6.1f1
はじめに
気付いたら、スプラッシュが表示されているか確認する際に使っていたisShowingSplashScreenが
非推奨になっていました。
warning CS0618: `UnityEngine.Application.isShowingSplashScreen' is obsolete:
`This property is deprecated, please use SplashScreen.isFinished instead'
警告文によるとSplashScreen.isFinishedというものを代わりに使えとの事。
なので今回は、そのSplashScreen.isFinishedを使ってみたという記事です。
SplashScreen
そもそもSplashScreenクラスってなんぞやという所からなんですが、
名前の通りスプラッシュに関するクラスで、5.5から追加されたっぽいです。
なお、今回使うのはUnityEngine.Rendering.SplashScreenで、
下記のUnityEditor.PlayerSettings.SplashScreenではないので注意が必要です。
isFinished
では本題のisShowingSplashScreenからisFinishedへの変更ですが、
基本的にはそのまま置き換えれば大丈夫です。
ただし、isShowingSplashScreenはスプラッシュを表示しているか?だったのに対し、
isFinishedはスプラッシュを表示し終えたか?と意味が異なっている点には注意が必要です。
//isShowingSplashScreen変更前 private void Update() { if (!Application.isShowingSplashScreen) { //スプラッシュ表示後 } }
//isFinishedへ変更後 private void Update() { if (UnityEngine.Rendering.SplashScreen.isFinished) { //スプラッシュ表示後 } }
余談ですがSplashScreenにはBeginというメソッドがあり、
任意で(エディタ上でも)スプラッシュスクリーンの再生が行えます。
これを使うとスプラッシュ表示中に音を鳴らすなどの実装が可能なようです。
また、Drawというメソッドもあり、ドキュメントの例だと以下のように使われているのですが、
IEnumerator Start() { Debug.Log("Showing splash screen"); SplashScreen.Begin(); while (!SplashScreen.isFinished) { SplashScreen.Draw(); yield return null; } Debug.Log("Finished showing splash screen"); }
Drawを実行しなくともBeginだけでスプラッシュは表示されるので、
ちょっと使い方が分かりませんでした……。
おわりに
なにはともあれ、非推奨になった箇所は迅速に修正する事をオススメします。
いつ使えなくなるか分からないので(:3っ)∋〜