Unity Web 构建中的 JavaScript 接口
Learn about some useful functions you can use in the JavaScript interface.
阅读时间4 分钟最后更新于 1 个月前
Unity Web 构建中的 JavaScript 接口提供了可用于配置 Web 应用程序的有用函数和变量。您可以在 JavaScript 库代码(.jslib 文件)中调用这些函数。
显示错误、警告或自定义横幅
使用 函数可显示消息横幅,或覆盖函数以根据您自己的目的自定义横幅。
unityShowBanner()参数 | 描述 |
|---|---|
| 要显示的消息。 |
| 要显示的消息的类型。例如:
|
默认 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 文件中调用函数。以下横幅将要显示的消息永久显示为错误消息:
unityShowBanner('The message you want to show', 'error');
更改 WebGL 上下文属性
使用 可自定义用于初始化 WebGL 上下文的创建属性。只能更改以下属性:
webglContextAttributespowerPreferencepremultipliedAlphapreserveDrawingBuffer
这些选项仅在使用 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()streamingAssetsUrlvar 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 }}}",};
控制网页缓存
使用 函数可以控制在 中缓存哪些 URL。该函数接受 URL 作为参数,并返回 、 或 。您也可以根据自己的目的覆盖函数。
cacheControl()UnityCachemust-revalidateimmutableno-store有关代码示例和更多信息,请参阅 Web 中的缓存行为。