Unity Web 构建中的 JavaScript 接口提供了一些有用的函数和变量,你可以使用它们来配置你的 Web 应用。你可以在 JavaScript 库代码中调用这些函数(.jslib 文件)。
使用 unityShowBanner() 函数来显示消息横幅,或者覆盖该函数以根据自己的目的进行自定义。
| 参数 | 描述 | 
|---|---|
| msg | 你想要显示的消息。 | 
| type | 你想要显示的消息类型。例如 
 | 
默认的 WebGL一个在 Web 浏览器中渲染 2D 和 3D 图形的 JavaScript API。Unity Web 构建选项允许 Unity 将内容发布为 JavaScript 程序,该程序使用 HTML5 技术和 WebGL 渲染 API 在 Web 浏览器中运行 Unity 内容。 更多信息
参阅 词汇表 模板中的以下代码设置了错误和警告横幅的外观。在你自己的模板中,你可以覆盖此函数以创建你自己的横幅类型,或者自定义显示非关键警告和错误消息的方式。
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');
使用 webglContextAttributes来自定义 WebGL 上下文初始化时所用的创建属性。你只能更改以下属性
powerPreferencepremultipliedAlphapreserveDrawingBuffer这些选项仅在你使用 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 | 优先考虑节能,而降低渲染性能。 | 
有关各个属性的更多信息,请参阅 Mozilla 关于 HTMLCanvasElement: getContext() 的文档。
有关 Unity WebGL 图形的更多信息,请参阅 WebGL 图形。
如果需要在不同的 CDN 上托管流媒体资产,则可以调整 createUnityInstance() 配置对象上的 streamingAssetsUrl 属性,将其指向流媒体资产所在的完整 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: "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-revalidate、immutable 或 no-store 之一。你还可以根据自己的目的重写该函数。
有关代码范例和更多信息,请参阅 Web 中的缓存行为。