NarraLeaf
插件

插件

通过可安装的插件扩展 NarraLeaf Studio 及其构建的游戏

插件是一个包含 manifest.json 和一到两个预打包入口文件的文件夹。它可以向 Studio 添加编辑器面板、操作、快捷键、蓝图节点、控件和语言包,并附带在你构建的游戏中运行的游戏侧代码

插件有两个入口目标,一个插件可以声明其中之一或两者:

目标运行于API用途
studio编辑器(工作区窗口)narraleaf-studio/plugin面板、操作、快捷键、蓝图节点的编辑器元数据、控件、语言包
runtime游戏(开发模式、预览、生产环境)narraleaf-studio/runtime蓝图节点执行、控件渲染、游戏侧逻辑

蓝图节点需要两个目标才能在发布的游戏中工作:studio 入口注册它的编辑器元数据,runtime 入口注册游戏运行到它时执行的代码。你只需在一个共享模块中编写一次定义,然后从每个入口分别注册——参见 创建第一个插件

能力是声明出来的,不是被发现的

插件的游戏侧代码除了注册节点和控件之外还能触及的任何东西——存储、故事变量、存档、覆盖层、原生子进程——都必须在 contributes 中声明。Studio 从这份声明派生出安装时的权限提示;而未声明的能力在 API 对象上根本不存在,而不是一次会失败的调用。在编写 runtime 入口之前,先读一遍能力模型;它决定了其余的一切

API 是纯类型的

narraleaf-studio 是一个纯类型包。它提供 narraleaf-studio/pluginnarraleaf-studio/runtime 的声明;实现由 Studio 在加载时提供。将它作为开发依赖添加,并在打包器中把这两个模块说明符标记为 external(模板已为你配置好)

yarn add -D narraleaf-studio

插件不在沙箱中运行。已安装的插件拥有与 Studio 本身相同的访问权限,其游戏侧代码运行在玩家的机器上。只安装你信任的插件。对于插件声明的、超出默认接口范围的任何能力,Studio 会在安装时显示权限提示

本页目录