Version: 6000.3
语言: 中文
添加自定义 Web 模板
Web 模板变量

Web 模板结构和实例化

在模板的index.html文件,并使用createUnityInstance().

有关模板变量、JavaScript 宏和条件指令的信息,请参阅 Web 模板变量

要添加自定义 Web 模板,请参阅添加自定义 Web 模板

自定义用户变量

选择 Web 模板时,Unity 会解析模板并查找 JavaScript 宏和条件指令

如果 JavaScript 变量符合以下条件,则 Unity 会将 JavaScript 变量视为自定义用户变量:

  • 在 JavaScript 宏和条件指令中使用。
  • 未在模板代码中声明。
  • 不是内部预处理器变量。

Unity 会自动将这些自定义用户变量添加到玩家设置设置,可让您为 Unity 构建的最终游戏设置各种特定于玩家的选项。更多信息
请参阅术语表
窗。

例如,如果您想控制生成的index.html页面直接从“播放器设置”窗口中,首先需要修改<title>行的index.html在您的自定义模板中,如下所示:lang-html <title>{{{ PAGE_TITLE }}}</title> 完成此作后,重新选择您的自定义模板。这将再次解析模板,并且“页面标题”字段将显示在“播放器设置”窗口的“分辨率和演示”> Web 模板部分中。

带有自定义模板的分辨率和演示窗口图像
带有自定义模板的分辨率和演示窗口图像

当您在此字段中输入文本并构建项目时,自定义变量PAGE_TITLE自动成为“页面标题”字段中的文本。

如果您想在宏中使用自定义整数或浮点变量,请使用parseInt()parseFloat()宏中的 JavaScript 函数,用于预处理 Unity 编辑器提供的字符串值。这是因为自定义用户变量始终被分配一个字符串值。

注意:变量名称中的下划线字符在字段内显示为空格,以提高可读性。

index.html文件的结构

index.html包含加载构建所需的代码,并且应包含以下内容:

  • 一个<canvas>元素。Unity 运行时使用<canvas>元素来呈现应用程序。
  • 用于下载构建加载程序的 JavaScript 代码。例如:
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>

  • 用于实例化构建的 JavaScript 代码。Unity 构建使用createUnityInstance()函数,该函数在构建加载器脚本中定义。

实例化函数:createUnityInstance()

createUnityInstance()函数创建内容的新实例。你可以这样使用它:lang-js createUnityInstance(canvas, config, onProgress).then(onSuccess).catch(onError);

此函数返回一个Promise对象,其中:

对象
canvas Unity 运行时使用canvas对象来渲染游戏。
config config对象包含构建配置,例如代码和数据 URL、产品和公司名称以及版本。有关配置定义的更多信息,请参阅 Web 模板构建配置和交互
onProgress(progress) {...} Web 加载器调用onProgresscallback 对象。这progress参数onProgresscallback 将加载进度确定为 0.0 和 1.0 之间的值。
onSuccess(unityInstance) {...} onSuccess在构建成功实例化后调用回调。创建的 Unity 实例对象作为参数提供。此对象可用于与构建进行交互。
onError(message) {...} onError如果在构建实例化期间发生错误,则会调用回调。错误消息作为参数提供。

createUnityInstance()函数在构建加载器脚本中定义,并且特定于实例化的构建。因此,如果您要在同一个 HTML 文档中嵌入两个或多个构建版本,请确保createUnityInstance()函数从onload相应的构建加载器脚本的回调。有关 Unity Web 加载程序的更多信息,请参阅 Web Build 文件夹Web 模板结构和实例化

其他资源

添加自定义 Web 模板
Web 模板变量