插件
编辑器支持插件。插件可以实现对编辑器的完全控制,包括但不限于以下功能:
- 显示自定义的视图。
- 显示自定义的Inspector。
- 自定义菜单。
- 对资源的操作,如导入导出等。
- 添加元件到舞台,以及设置舞台上的元件的属性。
- 插入自定义操作到发布流程。例如自定义发布代码。
支持使用Lua、Typescirpt、Javascript三种语言开发插件。插件宿主环境为XLua和Purets。 可以从仓库下载插件示例。
插件视图

-
打开插件放置的目录。插件目录是在“项目根目录/plugins"目录下,每个插件对应一个子目录。 -
创建一个新的插件。点击后弹出对话框:
插件名称插件的名称将作为插件目录的名称。显示名称这里设置的值将显示在插件列表的标题中。描述这里设置的值将显示在插件列表的描述中。插件模板创建时可以使用一个模板,例如使用发布代码模板,模板里包含了自定义发布代码的整个流程,稍作修改就可以适应项目特殊的需求。
使用Lua开发插件
编辑器开放的API可以在LuaAPI中找到。推荐使用EmmyLua编写插件。
可以通过fprint方法输出信息到控制台进行调试。
如果在main.lua里需要require其他Lua文件,应该使用PluginPath这个预定义的变量,例如:
require(PluginPath..'/xxx')
但PluginPath不能用在其他lua文件里。
参考资料:
使用Typescript/Javascript开发插件
编辑器开放的API可以在TsAPI中找到。推荐使用VSCode编写插件。编辑器运行的是JS,所以TS是需要转译为JS的。
如果在main.ts/main.js里要引入其他模块,按照nodejs的模块管理规则即可。
可以通过console.log输出信息到控制台进行调试。
以下是一些例子:
//引入C#类
const FairyEditor = CS.FairyEditor;
//发布开始通知
export function onPublishStart(pkgs: CS.System.Array$1<CS.FairyEditor.FPackage>) {
console.log(pkgs.get_Item(0).name);
}
//发布结束通知
export function onPublishEnd(pkgs: CS.System.Array$1<CS.FairyEditor.FPackage>) {
console.log(pkgs.get_Item(0).name);
}
//发起一个http请求
async function httpGetSample() {
let client = new CS.System.Net.Http.HttpClient()
var responseString = await puerts.$promise(client.GetStringAsync("http:/example.com/"));
console.log(responseString);
}
参考资料: