テンプレートの index.html ファイルでカスタムユーザー変数を使用し、createUnityInstance() を使用してコンテンツの新しいインスタンスを作成します。
テンプレート変数、JavaScript マクロ、および条件付きディレクティブについては、ウェブテンプレート変数を参照してください。
カスタムウェブテンプレートを追加するには、カスタムウェブテンプレートの追加を参照してください。
ウェブテンプレートを選択すると、Unity はテンプレートを解析し、JavaScript のマクロや条件付きディレクティブを探します。
Unity は、以下の場合に JavaScript 変数をカスタムユーザー変数として扱います。
Unity は、これらのカスタムユーザー変数を、Player Settings ウィンドウ内の Resolution and Presentation セクションに自動的に追加します。
例えば、生成された index.html ページのタイトルを Player 設定 ウィンドウから直接制御したい場合、まず、カスタムテンプレートの index.html の <title> 行を以下のように変更する必要があります。
<title>{{{ PAGE_TITLE }}}</title>
終わったら、カスタムテンプレートを再度選択してください。これでテンプレートが再び解析され、Page Title フィールドが、Player 設定ウィンドウの Resolution and Presentation > Web Template セクションに表示されます。
このフィールドにテキストを入力してプロジェクトをビルドすると、テンプレートマクロで使用されているカスタム変数 PAGE_TITLE が、自動的に Page Title フィールドのテキストになります。
カスタムの整数や float の変数をマクロで使用したい場合は、parseInt() または parseFloat() JavaScript 関数をマクロで使用して、Unity エディターから送信される文字列値を前処理します。これは、カスタムユーザー変数には常に文字列値が割り当てられるからです。
ノート: 変数名のアンダースコア文字は、可読性を高めるためにフィールド内のスペースとして表示されます。
index.html には、ビルドをロードするために必要なコードが含まれており、以下を含む必要があります。
<canvas> 要素。Unity ランタイムは、<canvas> 要素を使用してアプリケーションをレンダリングします。var buildUrl = "Build";
var loaderUrl = buildUrl + "/{{{ LOADER_FILENAME }}}";
var script = document.createElement("script");
script.src = loaderUrl;
script.onload = () => {
// code for instantiating the build
};
document.body.appendChild(script);`
この例では、{{{ LOADER_FILENAME }}} は、ビルドが生成される際にテンプレートのプリプロセッサーによって自動的に解決されます。
あるいは、スクリプトタグなどを使って、ビルドローダーをダウンロードすることもできます。例えば、以下の通り。
lang-js
<script src="Build/{{{ LOADER_FILENAME }}}"></script>
createUnityInstance() 関数を使ってインスタンス化されます。
createUnityInstance() 関数は、コンテンツの新しいインスタンスを作成します。以下のように使うことができます。
createUnityInstance(canvas, config, onProgress).then(onSuccess).catch(onError);
この関数は、Promise オブジェクトを返します。
| オブジェクト | 用途 |
|---|---|
canvas |
Unity ランタイムは、ゲームのレンダリングに canvas オブジェクトを使用します。 |
config |
config オブジェクトには、コードやデータの URL、製品や会社名、バージョンなどのビルド設定が含まれています。構成の定義の詳細については、ウェブテンプレートビルド設定とインタラクションを参照してください。 |
onProgress(progress) {...} |
ウェブローダーは、ダウンロードの進捗状況が更新されるたびに onProgress コールバックオブジェクトを呼び出します。onProgress コールバックに付属する progress 引数は、ロードの進捗状況を 0.0 から 1.0 の間の値で決定します。 |
onSuccess(unityInstance) {...} |
onSuccess コールバックは、ビルドが正常にインスタンス化された後に呼び出されます。作成された Unity インスタンスオブジェクトが引数として提供されます。このオブジェクトは、ビルドとのインタラクションに使用できます。 |
onError(message) {...} |
onError コールバックは、ビルドのインスタンス化の間にエラーが発生した場合に呼び出されます。エラーメッセージは引数として提供されます。 |
createUnityInstance() 関数は、ビルドローダースクリプトで定義され、インスタンス化されたビルドに特有です。したがって、同じ HTML ドキュメントに 2 つ以上のビルドを埋め込む場合は、対応するビルドローダースクリプトの onload コールバックから createUnityInstance() 関数が呼び出されることを確認してください。Unity ウェブローダーの詳細については、ウェブ Build フォルダーとウェブテンプレートの構造体とインスタンス化を参照してください。