Unity コンテンツをロードする HTML コード
Unity Web プレイヤーのロード画面

UnityObject2 の働き

UnityObject2 はシンプルに Unity のコンテンツを HTML に埋め込んだりインストールのプロセスをカスタマイズすることができる Javascript です。あなたのゲームや Web サイトに適するインストール UI を作成することは、エンドユーザーにとって魅力的であり、楽しい経験をもたらすことでしょう。この Unity Web Player プラグインは Web Player インストールの開始と埋め込まれた Unity コンテンツの検出を行う関数を持っています。HTML ファイルと一緒に UnityObject2.js ファイルを Web サーバー上にアップロードすることも可能ですが、Unity が提供している http://webplayer.unity3d.com/download_webplayer–3.x/3.0/uo/UnityObject2.js また https 対応の場合は https://ssl-webplayer.unity3d.com/download_webplayer–3.x/3.0/uo/UnityObject2.js から読み込ませるのが最善の方法です。そうすることで常に最新の UnityObject2 を使用することができます。Unity のサーバー上にある UnityObject2.js はトラフィックを節約するために minify されています。ソースコードを見たい場合は Windows であれば Data\Resources フォルダーの中に、Mac OS X であれば Contents/Resources フォルダーの中にあります。UnityObject2 はデフォルトでインストールタイプの識別やコンバーション率などのデータを GoogleAnalytics へ送信しています。UnityObject2 は jQuery に依存しています。

コンストラクター

Web ページ上に存在する各 Unity コンテンツに対して unityObject2 のインスタンスを生成する必要があります。

パラメーター:

  • configuration - このインスタンスは設定が含まれているオブジェクトです。以下は利用できるメンバーです。
    • width - 初期値は100%。Unity コンテンツの幅。ピクセル値(600、“450” など)か百分率(“50%”、“100%” など)で指定可能です。百分率は親要素に対しての値になります。
    • height - 初期値は100%。 Unity コンテンツの高さ。ピクセル値(600、“450” など)か百分率(“50%”、“100%” など)で指定可能です。百分率は親要素に対しての値になります。
    • fullInstall - 初期値は false。 Web Player がフルで使用できない場合にダウンロードを行います。通常は Web Player の一部のみインストールされ、残りのファイルは後で自動的にダウンロードされます。
    • enableJava - 初期値は true。 Java ベースのインストールを有効にします。対応していないプラットフォームもあります。
    • enableClickOnce - 初期値は true。 ClickOnce ベースのインストールを有効にします。 Internet Explorer のみで機能します。
    • enableUnityAnalytics - 初期値は true。 Unity に Web Player のインストールの通知を行います。 Web Player がすでにインストールされている場合は何も起こりません。
    • enableGoogleAnalytics -初期値は true。 Google Analytics を使用して、 Unity に Web Player のインストールの通知を行います。すでに Web Player がインストールされている場合は何も起こりません。
    • params - 初期値は {}。 Player を埋め込む際に使用する追加パラメーター。 カスタマイズに便利です。
      • backgroundcolor - 初期値は “FFFFFF”。ローディング中の Web Player コンテンツ表示領域の背景色。初期値では白。(Pro版のみ)
      • bordercolor - 初期値は “FFFFFF”。ローディング中の Web Player コンテンツ表示領域の周囲に表示される 1 ピクセルの枠線の色。(Pro版のみ)
      • textcolor - 初期値は “000000”。エラーメッセージ([例]データファイルの読み込み失敗など)のテキストの色。(Pro版のみ)
      • logoimage - デフォルトでは unity Logo。カスタムロゴ画像用のパッチ。ロゴ画像は、ローディング中の Web Player コンテンツの表示領域内の中央に描画されます。(Pro版のみ)
      • progressbarimage - ローディング中のプログレスバーとして使用されるカスタム画像へのパス。プログレスバー画像の幅がファイルローディングの完了度に応じて部分的に表示される形なので、最初はゼロピクセル幅から始まり、それがアニメーションによって変化しローディング完了時に元々の幅になります。(Pro版のみ)
      • progressframeimage - ローディング中のプログレスバーのフレーム用に使用されるカスタム画像へのパスです。(Pro版のみ)
      • disableContextMenu - このパラメーターは、ユーザーがコンテンツを右クリックするか、 Ctrl+ クリックした際に Unity Web Player がコンテキストメニューを表示するかどうかを制御します。 true に設定するとコンテキストメニューは表示されず、コンテンツは右クリック挙動を使用できるようになります。コンテキストメニューを有効にしたい場合は、このパラメーターは含まないでください。
      • disableExternalCall - このパラメーターは、Unity Web Player が、ブラウザベースの JavaScript による通信をコンテンツが行うことを許可するかどうか制御します。 true に設定するとブラウザ通信が無効になり、したがってコンテンツはブラウザ上で JavaScript の呼び出しや実行ができなくなります。初期値は false です。
      • disableFullscreen - このパラメーターは、Unity Web Player が、コンテンツの全画面モードでの表示を許可するかどうかを制御します。 true に設定すると全画面表示ができなくなり、コンテキストメニューから “Go Fullscreen” が削除されます。初期値は false です。
    • attributes - 初期値は {}。属性のリストを含んだオブジェクト。ブラウザによって、下層の <object><embed> タグに追加されます。
    • debugLevel - 初期値は 0。ログを有効あるいは無効に設定できます。ブラウザコンソールで開発の進行具合を確認したいときに便利です。有効にするには 0 より大きい値に設定します。

注意 すべての色は 16 進数の色で指定しなければいけません。(eg. FFFFFF, 020F16, etc.)。画像のパスは相対パスか絶対パスを指定することができます。また画像のファイルは RGB(透過なし)か RGBA(透過)の 8bit/channel の PNG ファイルでなければいけません。最後に、progressframeimage と progressbarimage の高さが同じでなければいけません。

関数

進捗の観察

プラグインのインストールや初期化の際に通知を受け取るコールバックを登録することができます。

パラメーター:

  • callback - プラグインのインストール/初期化に関する情報を得るためのコールバック関数です。このコールバックは progress を受け取るオブジェクトです。
  • progress - プラグインのインストールや初期化の、現在の進行段階についての情報が含まれます。
  • pluginStatus - プラグインの状態を特定する文字列(以下のうちどれか)が含まれます。 * unsupported ` - 現在のブラウザ/OS が未サポート * missing - 対応プラットフォームだが、プラグインがまだインストールされていない * installed - プラグインのインストールが完了している、あるいはすでにインストール済みだった * first - プラグインのインストールが完了し、ゲームの最初のフレームが再生された (プラグインが以前にインストールしてある場合は、呼び出されない)
  • targetEl - Web Player のコンテナとして機能する DOM 要素です。(これは、UnityObject2.initPlugin に渡すものと同じ要素です) * bestMethod - プラグインがない場合に、以下のうちのどれかから、現在のプラットフォームに最適なインストールパスを取得します。 * JavaInstall - “One Click” Java Applet を使用してプラグインがインストールされます。 * ClickOnceIE - Internet Explorer の Click Once インストールが使用されます。 * Manual - ファイルをダウンロードして手動でインストールするようユーザーにプロンプトします。 * unityObj - このコールバックに対応した、以前作成された unityObject2 インスタンスへの参照です。 * ua - pluginStatus と bestMethod の決定に使用される User Agent 情報が含まれます。

initPlugin

実際にゲームを起動しようとします。そして、事前に登録したコールバックを呼び出します。注意してください。

パラメーター:

  • containerElement - Web Player のコンテナとして機能する DOM 要素です。
  • gameURL - Web Player のデータファイル(.unity3d)の URL。相対パスと絶対パスを利用することができます。

注意 この関数は containerElement が DOM に存在した後に呼び出す必要があります。安全のために、DOM が完全に読み込むまで待つことができます。

installPlugin

指定された方法 method でプラグインをインストールします。もし方法が指定されなかったとき this.getBestInstallMethod()を呼び出して使用します。

パラメーター:

  • method - デフォルトは getBestInstallMethod (). インストール方法を文字列で指定します。文字列は以下の値をサポートしています。: JavaInstall、ClickOnceIE、Manual.

注意 プラットフォームやブラウザによっては利用できない方法もあります。Manual の場合は exe/dmg インストーラーがダウンロードされ、ユーザーが手動でインストールを行う必要があります。

getUnity

これは Player の参照を返します。ですので SendMessage を呼び出すことができます。

注意 Web Player がまだ初期化されていない場合は null を返します。

例: この例は非常に簡単な UnityObject2 の使い方です。もしすでにユーザーがプラグインをインストールしていたら Web Player が正常に読み込まれ、それ以外の場合は隠されていた div.missing が表示され、インストールボタンが表示されます。インストールが成功した後、Web Player は正常に読み込まれます。

<!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 u = new UnityObject2();
        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>
</html>


Unity コンテンツをロードする HTML コード
Unity Web プレイヤーのロード画面