Version: Unity 6.0 (6000.0)
言語 : 日本語
Unity C#、JavaScript、C/C++/C# コード間のコールバックの作成
ブラウザーとの相互作用に使用する非推奨コードを置き換える

Unity Web ビルドの JavaScript インターフェース

Unity Web ビルドの JavaScript インターフェースは、ウェブアプリケーションの設定に使用できる便利な関数と変数を提供します。これらの関数は、JavaScript ライブラリコード (.jslib ファイル) で呼び出すことができます。

エラー、警告、カスタムバナーの表示

unityShowBanner() 関数を使用してメッセージバナーを表示するか、関数をオーバーライドして独自の目的でカスタマイズします。

パラメーター 説明
msg 表示するメッセージ。
type 表示するメッセージのタイプ。
例:
  • type == error を使用して、キャンバスの上に永久のエラーメッセージを表示します。
  • type == warning を使用して、メッセージ上に黄色のハイライト色を表示します。

デフォルトの WebGL テンプレートの以下のコードは、エラーバナーと警告バナーの外観を設定します。カスタムテンプレートでは、この関数をオーバーライドして独自のバナータイプを作成したり、重要でない警告やエラーメッセージの表示方法をカスタマイズしたりできます。

function unityShowBanner(msg, type) {
        var warningBanner = document.querySelector("#unity-warning");
        function updateBannerVisibility() {
          warningBanner.style.display = warningBanner.children.length ? 'block' : 'none';
        }
        var div = document.createElement('div');
        div.innerHTML = msg;
        warningBanner.appendChild(div);
        if (type == 'error') div.style = 'background: red; padding: 10px;';
        else {
          if (type == 'warning') div.style = 'background: yellow; padding: 10px;';
          setTimeout(function() {
            warningBanner.removeChild(div);
            updateBannerVisibility();
          }, 5000);
        }
        updateBannerVisibility();
      }

この関数は .jslib ファイルで呼び出すことができます。以下のバナーは、エラーメッセージとして The message you want to show を永久に表示します。

unityShowBanner('The message you want to show', 'error');

WebGL コンテキスト属性の変更

WebGL コンテキストを初期化する作成属性をカスタマイズするには、webglContextAttributes を使用します。以下の属性のみ変更できます。

  • powerPreference
  • premultipliedAlpha
  • preserveDrawingBuffer

これらのオプションは、WebGL レンダリング API を使用する場合にのみ適用できます。WebGPU レンダリング API を使用する場合、webglContextAttributes フィールドは無視されます。

これらの属性を変更するには、カスタム WebGL テンプレートの設定オブジェクトを変更します。 例:

script.onload = () => {
  config['webglContextAttributes'] = {

    powerPreference: 'high-performance',
    premultipliedAlpha: false,
    preserveDrawingBuffer: true, 
  };
  createUnityInstance(canvas, config, (progress) => {

powerPreference 属性には以下のオプションがあります。

オプション 説明
default ユーザーエージェントにどの GPU 設定が最適かを判断させます。これはデフォルトの設定です。
high-performance 消費電力よりもレンダリングパフォーマンスを優先します。
low-power レンダリングパフォーマンスよりも省電力を優先します。

各属性の詳細については、HTMLCanvasElement: getContext() に関する Mozilla のドキュメントを参照してください。

Unity WebGL グラフィックスについては、WebGL グラフィックス を参照してください。

プロジェクトによるストリーミングアセットの参照

ストリーミングアセットを別の CDN でホストする必要がある場合は、ストリーミングアセットがある完全な URL を指すように createUnityInstance() 設定オブジェクトの streamingAssetsUrl プロパティを調整できます。

var buildUrl = "Build";
var config = {
  dataUrl: buildUrl + "/{{{ DATA_FILENAME }}}",
  frameworkUrl: buildUrl + "/{{{ FRAMEWORK_FILENAME }}}",
  codeUrl: buildUrl + "/{{{ CODE_FILENAME }}}",
#if MEMORY_FILENAME
  memoryUrl: buildUrl + "/{{{ MEMORY_FILENAME }}}",
#endif
#if SYMBOLS_FILENAME
  symbolsUrl: buildUrl + "/{{{ SYMBOLS_FILENAME }}}",
#endif
   streamingAssetsUrl: "https://mygameserver.com/StreamingAssets/",  // Add this line to override the default streaming assets location
  companyName: "{{{ COMPANY_NAME }}}",
  productName: "{{{ PRODUCT_NAME }}}",
  productVersion: "{{{ PRODUCT_VERSION }}}",
};

ウェブページのキャッシュの制御

cacheControl() 関数を使用して、UnityCache にキャッシュする URL を制御します。この関数は URL をパラメーターとして受け取り、must-revalidateimmutable、または no-store のいずれかを返します。独自の目的でこの関数をオーバーライドすることもできます。

コード例と詳細は、ウェブのキャッシュ動作 を参照してください。

追加リソース

Unity C#、JavaScript、C/C++/C# コード間のコールバックの作成
ブラウザーとの相互作用に使用する非推奨コードを置き換える