Version: 6000.3
语言: 中文
在 Unity C#、JavaScript 和 C/C++/C# 代码之间创建回调
替换已弃用的浏览器交互代码

Unity Web 版本中的 JavaScript 接口

Unity Web 版本中的 JavaScript 接口提供了有用的函数和变量,可用于配置 Web 应用程序。您可以在 JavaScript 库代码(.jslib 文件)中调用这些函数。

显示错误、警告或自定义横幅

使用unityShowBanner()函数显示消息横幅,或覆盖该函数以根据您自己的目的对其进行自定义。

参数 描述
msg 您要显示的消息。
type 要显示的消息类型。例如:
  • type == error在画布顶部显示永久错误消息。
  • type == warning在邮件上显示黄色突出显示颜色。

默认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');

更改 WebGL 上下文属性

webglContextAttributes以自定义初始化 WebGL 上下文时使用的创建属性。您只能更改以下属性:

  • 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属性具有以下选项:

选择 描述
违约 让用户代理决定哪种 GPU 配置最合适。这是默认值。
高性能 优先考虑渲染性能而不是功耗。
低功耗 优先考虑节能而不是渲染性能。

有关每个属性的更多信息,请参阅 HTMLCanvasElement 上的 Mozilla 文档:getContext()。

有关 Unity WebGL 图形的信息,请参阅 WebGL 图形

将项目定向到流媒体资源

如果您需要在其他 CDN 上托管流媒体资产,您可以调整streamingAssetsUrl属性createUnityInstance()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: "https://mygameserver.com/StreamingAssets/",  // Add this line to override the default streaming assets location
  companyName: "{{{ COMPANY_NAME }}}",
  productName: "{{{ PRODUCT_NAME }}}",
  productVersion: "{{{ PRODUCT_VERSION }}}",
};

控制网页缓存

使用cacheControl()函数来控制哪些 URL 缓存在UnityCache.该函数接受 URL 作为参数,并返回must-revalidate,immutableno-store.您还可以根据自己的目的覆盖该函数。

有关代码示例和详细信息,请参阅 Web 中的缓存行为

其他资源

在 Unity C#、JavaScript 和 C/C++/C# 代码之间创建回调
替换已弃用的浏览器交互代码