项目插件
最近更新时间:2023-11-13
概述
本文档主要介绍插件的管理和创建。
插件是指编辑器能快速增加或移除的代码和数据集合。插件包括引擎插件和项目插件两种,两者对应不同目的,引擎插件着重于引擎和编辑器的功能添加或修改;项目插件主要是对项目功能的扩展和封装。
插件管理器
在编辑器里依次点击配置(Config) -> 项目插件配置(Project Plugins Config),打开项目插件配置(Project Plugins Config)窗口。
项目插件配置窗口:
编号 | 名称 | 描述 |
---|---|---|
1 | 项目插件列表 | 包含了所有项目安装的插件,且按插件类型做了区分,可以点击列表按照类型过滤插件。 |
2 | 搜索栏 | 可以按名称搜索插件,过滤(Filter)按钮可以按照插件是否启用进行过滤。 |
3 | 插件信息列表 | 显示了插件的基本信息,包括图标、名称、版本、作者及插件状态(启用/禁用),可以单击前面的复选框修改插件的启用/禁用状态(需要重新打开编辑器生效)。 |
点击插件下方的编辑(Edit)按钮,可以编辑插件详细信息。
创建插件
点击文件(File) -> 创建插件(Create Plugin),打开创建插件(Create Plugin)窗口。在界面中选择需要的插件模板,填入插件名称,然后点击创建(Create)按钮,将在路径(Path)控件所指定目录位置创建插件(此目录由项目配置文件指定)。
目前还没有支持在编辑器中创建引擎插件。
插件解析
插件路径
引擎插件:引擎根路径/plugins/PluginName
引擎插件的路径可以在engine_path.json文件中修改。
"name": "EnpginePluginsPath",
"path": "plugins"
项目插件:项目根路径/plugins/PluginName
项目插件可以在项目的.projectinfo文件中修改。
[Project]
PluginPath=plugins
引擎会搜索对应插件的路径,通过插件根路径下的插件描述文件(.plugininfo) 来查找插件。
插件描述文件
[Project]
BinaryPath=bin
ResourcePath=res
ScriptPath=script
SourcePath=source
IsEngine=true
IsExperimental=false
DefaultEnable=true
PluginName=collector
Description=
Author=
Version=1.0
Category=Other
ConfigPath=config
[Module]
fx_collect=1
[Project]分类下的字段描述了插件的基本信息。
[Module]分类下的字段描述了模块的基本信息(开发中)。
插件目录
bin:生成的二进制文件
config:插件配置
res:插件资源
skin:界面资源
text:译文资源
script:脚本
source:C++目录
preview.png 文件表示插件的预览图,分辨率为60*60,可自定义。
插件开发
脚本
位于插件的脚本(script)目录下,可以使用Lua IDE进行开发。建议使用VScode + Lua插件。
C++
位于插件的代码(source)目录下,可以使用C++ IDE进行开发。建议使用VS2015或VS2019。 代码插件以动态库(.dll)的方式被引擎加载。
依赖关系(开发中)
箭头表明可能的依赖关系,各插件或模块类型可依赖同级别或更高级别的其他插件或模块类型。
项目结构(开发中)
打开项目时,含有代码的项目插件,将被添加到项目的插件文件夹中。
打开引擎时,含有代码的引擎插件,将被添加到引擎的插件文件夹中。
自动编译
依赖的项目插件模块被包含在项目解决方案中,从launcher
打开项目时,编译项目解决方案会一并编译所依赖的项目插件。
解决方案的目录如下:
Sln/
├─ Engines/
│ ├─ Engine/
├─ Projects/
│ ├─ Plugins/
│ │ ├─ plugin-a
│ │ ├─ plugin-b
│ ├─ Project
若.projectinfo
中开启了项目插件,则该插件的编译模块会生成在Sln/Plugins
下;同时项目编译前,会触发开启的插件的编译。