Unity の SplashScreen API を触ってみる

  • 7
    いいね
  • 0
    コメント

Unity5.5より、新しいスプラッシュスクリーン機能が追加されました。

この新しい機能についての使い方は公式ブログにある3分程度の動画で紹介されています。英語ですが、とてもわかりやすく簡単な機能なので理解はしやすいと思います。

[更新]開発進行中、スプラッシュスクリーンツール[5.5ベータ版に入りました]
https://blogs.unity3d.com/jp/2016/09/12/update-in-development-unity-splash-screen-tools-in-beta/

ss 2016-12-20 0.53.07.png

今回は、このスプラッシュ機能をAPIから利用してみます。

ドキュメントを読む

すでに SplashScreen API はドキュメント化されています。

UnityEditor.PlayerSettings.SplashScreen

https://docs.unity3d.com/ScriptReference/PlayerSettings.SplashScreen.html

ss 2016-12-20 0.57.12.png

スプラッシュスクリーンの設定を行うためのクラスです。APIを見る限り、特にアクセス制限はなく、スクリプト経由で最大限にカスタマイズが行えます。

試しに、プラットフォームごとにロゴを変更してみます。

NewBehaviourScript.cs
using UnityEditor;
using UnityEngine;

public class NewBehaviourScript
{
    [InitializeOnLoadMethod]
    static void ChangeSplashScreen()
    {
        //プラットフォーム切替時に発火
        EditorUserBuildSettings.activeBuildTargetChanged += () =>
        {
            var logos = new PlayerSettings.SplashScreenLogo[0];

            switch (EditorUserBuildSettings.activeBuildTarget)
            {
                case BuildTarget.StandaloneOSXIntel64:
                    logos = new[]
                    {
                        PlayerSettings.SplashScreenLogo.Create(2f,
                            AssetDatabase.LoadAssetAtPath<Sprite>("Assets/StandAlone.png"))
                    };
                    break;
                case BuildTarget.WebGL:
                    logos = new[]
                    {
                        PlayerSettings.SplashScreenLogo.Create(2f,
                            AssetDatabase.LoadAssetAtPath<Sprite>("Assets/WebGL.png"))
                    };
                    break;
                default:
                    break;
            }

            PlayerSettings.SplashScreen.logos = logos;
        };
    }
}

UnityEngine.Rendering

https://docs.unity3d.com/ScriptReference/Rendering.SplashScreen.html

ss 2016-12-20 0.58.33.png

スプラッシュスクリーンの描画を制御するクラスです。このクラスが何故あるかというと、より込み入ったスプラッシュスクリーンの演出をしたいときに使用するためです。

例えば、スプラッシュスクリーンの表示中に音を出したり、裏側で通信やシーンを読み込んだりと、開発者としても「待つ」しかなかったスプラッシュの部分で様々な処理が行えるようになります。このAPIを使うときはPlayerSettingsにある「Show SplashScreen」のチェックを外しておきましょう(チェックを外せるのはProユーザーのみ)。

ss 2016-12-20 1.25.12.png

余談

Unity5.6から MoviewTexture に代わる VideoPlayer が実装されました。

14889825_10154342221551773_6220655481924906166_oのコピー.jpg

もしかすると将来的にスプラッシュスクリーンで動画を再生することができるようになるかもしれませんね。

2fa2446d287dfc3bb249fc6a8c803cb0.gif

余談2

本エントリーとあまり関係ないですがドキュメントを見やすくしたChrome拡張「Unity Documentation Extensions」を作ってるので良かったら使ってみてくださいね。

https://chrome.google.com/webstore/detail/unity-documentation-exten/cokplpccpoocgplhcaabfogikfcceggc?hl=ja

この投稿は Unity Advent Calendar 201621日目の記事です。