ウェブ テンプレートを使用してウェブ ビルドを設定し、対話します。
テンプレート変数、JavaScript マクロ、および条件付きディレクティブについては、ウェブテンプレート変数を参照してください。
Configuration オブジェクトには、コードやデータの URL、製品名、会社名、バージョンなどからなるビルド設定が含まれています。ビルド設定は、以下のコードで定義できます。
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: "StreamingAssets",
companyName: "{{{ COMPANY_NAME }}}",
productName: "{{{ PRODUCT_NAME }}}",
productVersion: "{{{ PRODUCT_VERSION }}}",
// additional options can go here, see below
};
上の例では、ビルドフォルダーの URL は、buildUrl という別の変数として格納されます。これは、埋め込みページとホスティングサーバ上のビルドフォルダーとの関係がわからない場合に便利です。これにより、埋め込みコードを他の HTML ドキュメントで再利用することができます。使用する場合の例としては、Build フォルダーをサーバー上の別の場所に移動した場合が挙げられます。埋め込みページの buildUrl 変数の値を調整して、同じ埋め込みコードを使用することができます。これは、StreamingAssets フォルダー (streamingAssetsUrl) にも当てはまります。
ビルドの URL とフィールド名の設定に加え、config オブジェクトに以下のプロパティを設定できます。
| プロパティ | 用途 |
|---|---|
matchWebGLToCanvasSize: false |
デフォルト (このプロパティが true に設定されている、または何も設定されていない場合) で、Unity は WebGL キャンバスのレンダーターゲットサイズを、キャンバス要素のドキュメントオブジェクトモデル (DOM) のサイズ (window.devicePixelRatio でスケーリングされる) と同期します。キャンバスの DOM サイズと WebGL レンダーターゲットサイズを手動で設定する場合は、このプロパティを false に設定します。 |
devicePixelRatio: <number> |
このフィールドでは、レンダリングされるページの DPI スケーリング率を強制的に設定できます。1 に設定すると、レンダリングを強制的に “標準 DPI” (または Retina DPI 以外) にします。これにより、ローエンドのモバイルデバイスでパフォーマンスを向上させることができます。デフォルトでは、このフィールドは設定されていません。つまり、レンダリングされるページではブラウザーの DPR スケーリング率が使用されるため、結果としてレンダリングの DPI が高くなります。 |
autoSyncPersistentDataPath: true |
true に設定すると、Unity の Application.persistentDataPath ディレクトリ内のすべてのファイル書き込みが自動的に保持され、ユーザーが次にウェブサイトにアクセスしたときにコンテンツが記憶されます。設定しない (または false に設定する) 場合は、JavaScript 関数 JS_FileSystem_Sync() を呼び出して、Application.persistentDataPath ディレクトリ内のファイルの変更を手動で同期する必要があります。 |
ビルドが正常にインスタンス化された後、Promise オブジェクトの fulfilment ハンドラーコールバックは、新しく作成された Unity インスタンスオブジェクトを引数として受け取ります。ビルドと対話するには、Unity インスタンスの以下のメソッドを呼び出します。
| 方法 | 用途 |
|---|---|
unityInstance.SetFullscreen(fullscreen) |
SetFullscreen メソッドは全画面モードを切り替えます。このメソッドは値を返しません。ノート:全画面モードをアクティベートするには、ボタンやキーの押下などのユーザーインタラクションを使用する必要があります。起動時に全画面モードをアクティベートすることはできません。- 全画面モードをアクティベートするには、 fullscreen 引数を 1 に設定します。- 全画面モードを終了するには、 fullscreen 引数を 0 に設定します。 |
unityInstance.SendMessage(objectName, methodName, value) |
SendMessage メソッドは、ゲームオブジェクトにメッセージを送信します。このメソッドは値を返しません。- objectName はシーン内のオブジェクトの名前です。- methodName はスクリプト内のメソッドの名前で、現在シーン内のオブジェクトにアタッチされています。- value は、文字列、数字、または空の場合があります。 |
unityInstance.Quit().then(onQuit) |
Quit() メソッドを使用してランタイムを終了させて、Unity のインスタンスが使用するメモリをクリーンアップします。このメソッドは、Promise オブジェクトを返します。ノート:ブラウザーのアドオンの中には、unityInstance.Quit() の呼び出し後にウェブページから Unity コンテンツを再生するガベージコレクターの機能を妨げるものがあります。ブラウザーのアドオンを無効にして問題を解決するか、Mozilla のドキュメントで <iframe>インラインフレーム要素を参照して、アドオンが有効な Unity アプリケーションを終了およびアンロードします。- ビルドランタイムの終了後に onQuit コールバックが呼び出されます。 |