Skip to main content

项目插件

最近更新时间:2023-11-13

概述

本文档主要介绍插件的管理和创建。

插件是指编辑器能快速增加或移除的代码和数据集合。插件包括引擎插件和项目插件两种,两者对应不同目的,引擎插件着重于引擎和编辑器的功能添加或修改;项目插件主要是对项目功能的扩展和封装。

插件管理器

在编辑器里依次点击配置(Config) -> 项目插件配置(Project Plugins Config),打开项目插件配置(Project Plugins Config)窗口。

image-20231108174505992

项目插件配置窗口:

image-20231109094918702

编号名称描述
1项目插件列表包含了所有项目安装的插件,且按插件类型做了区分,可以点击列表按照类型过滤插件。
2搜索栏可以按名称搜索插件,过滤(Filter)按钮可以按照插件是否启用进行过滤。
3插件信息列表显示了插件的基本信息,包括图标、名称、版本、作者及插件状态(启用/禁用),可以单击前面的复选框修改插件的启用/禁用状态(需要重新打开编辑器生效)。

点击插件下方的编辑(Edit)按钮,可以编辑插件详细信息。

image-20231108175709914

创建插件

点击文件(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进行开发。建议使用VS2015VS2019。 代码插件以动态库(.dll)的方式被引擎加载。

依赖关系(开发中)

注意

箭头表明可能的依赖关系,各插件或模块类型可依赖同级别或更高级别的其他插件或模块类型。

项目结构(开发中)

打开项目时,含有代码的项目插件,将被添加到项目的插件文件夹中。

打开引擎时,含有代码的引擎插件,将被添加到引擎的插件文件夹中。

自动编译

依赖的项目插件模块被包含在项目解决方案中,从launcher打开项目时,编译项目解决方案会一并编译所依赖的项目插件。

解决方案的目录如下:

Sln/
├─ Engines/
│ ├─ Engine/
├─ Projects/
│ ├─ Plugins/
│ │ ├─ plugin-a
│ │ ├─ plugin-b
│ ├─ Project

.projectinfo中开启了项目插件,则该插件的编译模块会生成在Sln/Plugins下;同时项目编译前,会触发开启的插件的编译。