UI引擎

*请区分资源包JSON中的“UI”

最后更新适配版本:1.16.200.2正式版


脚本系统

本文档指的是H5UI又或者叫SEUI,Minecraft的自定义UI基于HTML5。
可以在HTML文件中编写JavaScript来侦听和响应UI引擎中的事件。这些事件可以由UI引擎本身触发,也可以从脚本触发。
在使用自定义UI前,需在包manifest.json文件的功能列表capabilities数组中添加experimental\_custom\_ui
H5UI是脚本引擎的功能之一,它依赖后端——脚本引擎,与前端——网页(Html、Css、JavaScript),前端需使用UIEngine(UI引擎)与后端脚本引擎对接。

获取脚本引擎

engine.on()函数需要侦听事件“刻面:已更新:scripting“并且您需要存储返回值。
然后需要通过触发方面:请求事件并在向量中传递“脚本”。
通话顺序很重要。如果在注册侦听器之前触发请求,则无法捕获回调。

捕获脚本引擎示例:

let scriptInterface = undefined;
engine.on("facet:updated:scripting", function(interface) {
  scriptInterface = interface;
});
engine.trigger("facet:request", ["scripting"]);

引擎绑定

on(事件标识符, 回调函数)

参数

名字类型描述
CallbackJS对象事件发生时使用的回调函数
EventIdentifier字符串指定函数将对其作出反应的事件ID

客户端脚本监听事件示例

engine.on("exampleEventIdentifier", function (exampleData) { 
});

trigger(事件标识符,参数)

参数

名字类型描述
ArgumentsJS对象传递给回调函数的参数
EventIdentifier字符串指定函数将对其作出反应的事件ID

发送事件至UI引擎示例

engine.trigger("exampleEventIdentifier", eventDataObject);

脚本绑定

名字类型描述
Data字符串发送到“minecraft:ui_event“客户端脚本中的事件

事件发送到客户端示例

scriptInterface.triggerEvent("SendThisDataToTheScript");