Unity Webプレイヤーのロード画面
Unity Web Playerとブラウザの通信

Unity Web Playerの動作カスタマイズ

Unity Web Player は開発者が動作を簡単に制御するためのパラメーターが複数あります。

  • disableContextMenu: このパラメータはユーザーがUnity Web Player上で右クリックした時,コンテキストメニューを表示するかどうかを制御することができます。これがtrueの場合,コンテキストメニューが表示されなくなり,Unity Web Player内で右クリックを利用することが出来るようになります。コンテキストメニューを表示させたい場合にはこのパラメータを含めないようにして下さい。
  • disableExternalCall: このパラメータは,Unity Web PlayerとブラウザベースのJavascriptとの通信を許可するかどうかを制御します。これがtrueの場合,ブラウザとの通信を行わないのでJavascriptの呼び出しや実行ができません。デフォルトではfalseになっています。
  • disableFullscreen: このパラメータはUnity Web Playerのフルスクリーンモードで表示を許可するかどうかを制御します。これがtrueの場合,フルスクリーンの実行は許可されず,コンテキストメニューの“Go Fullscreen”をエントリーから削除します。デフォルトではfalseになっています。

UnityObject2 では以下のように制御を行います。

var params = {
    disableContextMenu: true
};
var u = UnityObject2({ params: params });
u.initPlugin(jQuery("#unityPlayer")[0], "Example.unity3d");


上記の例では disableExternalCalldisableFullscreen が指定されていないことにあなたは気付くことでしょう。それらはデフォルト値が使用されます。

さらに詳しい詳細は UnityObject2 を御覧ください。

以下がすべての動作オブションを設定する例になります。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Unity Web Player | "Sample"</title>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <script type="text/javascript">
        <!--
        var unityObjectUrl = "http://webplayer.unity3d.com/download_webplayer-3.x/3.0/uo/UnityObject2.js";
        if (document.location.protocol == 'https:')
            unityObjectUrl = unityObjectUrl.replace("http://", "https://ssl-");
        document.write('<script type="text\/javascript" src="' + unityObjectUrl + '"><\/script>');
        -->
    </script>
        <script type="text/javascript">
        var params = {
            disableContextMenu: true,
            disableExternalCall: false,
            disableFullscreen: false,
        };
        var u = new UnityObject2({ params: params });
        u.observeProgress(function (progress) {
            var $missingScreen = jQuery(progress.targetEl).find(".missing");
            switch(progress.pluginStatus) {
                case "unsupported":
                    showUnsupported();
                break;
                case "broken":
                    alert("You will need to restart your browser after installation.");
                break;
                case "missing":
                    $missingScreen.find("a").click(function (e) {
                        e.stopPropagation();
                        e.preventDefault();
                        u.installPlugin();
                        return false;
                    });
                    $missingScreen.show();
                break;
                case "installed":
                    $missingScreen.remove();
                break;
                case "first":
                break;
            }
        });
        jQuery(function(){
            u.initPlugin(jQuery("#unityPlayer")[0], "Example.unity3d");
        });
        </script>
    </head>
    <body>
        <p class="header">
            <span>Unity Web Player | </span>WebPlayer
        </p>
        <div class="content">
            <div id="unityPlayer">
                <div class="missing">
                    <a href="http://unity3d.com/webplayer/" title="Unity Web Player. Install now!">
                        <img alt="Unity Web Player. Install now!" src="http://webplayer.unity3d.com/installation/getunity.png" width="193" height="63" />
                    </a>
                </div>
            </div>
        </div>
        <p class="footer">&laquo; created with <a href="http://unity3d.com/unity/" title="Go to unity3d.com">Unity</a> &raquo;</p>
    </body>


Unity Webプレイヤーのロード画面
Unity Web Playerとブラウザの通信