|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
# EGFramework 使用手册
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
# 引言
|
|
|
|
|
|
|
|
> `EGFramework`全称Everyone's Godot framework,基于`Godot`开源引擎,使用C#编写,目前仅兼容`Godot4.3 - .NET`,部分兼容`Godot3.5 - .NET`,是完全开源的组件式,功能分布的框架,使用时可以自己根据需求安装对应的`Module`来实现对应的功能,同样也可以裁剪对应的`Module`来删减对应的功能。
|
|
|
|
>
|
|
|
|
> `Module` 是`EGFramework`的核心组成部分,也是`EGFramework`中重要的扩展依据。
|
|
|
|
>
|
|
|
|
> 目前该框架可能还有很多欠缺与不足,最终目的是做一个方便可靠好用的通讯&存储&资源生成&界面生成框架、用户无需过多学习、开箱即用。
|
|
|
|
|
|
|
|
## 关于Godot引擎(摘自[Godot Engine (4.x) 简体中文文档](https://docs.godotengine.org/zh-cn/4.x/about/introduction.html))
|
|
|
|
|
|
|
|
> Godot 引擎是一款功能丰富的跨平台游戏引擎,可以通过统一的界面创建 2D 和 3D
|
|
|
|
> 游戏。它提供了一套全面的通用工具,因此用户可以专注于制作游戏,而无需重新发明轮子。游戏可以一键导出到多个平台,包括主流的桌面平台(Linux、macOS、Windows)、移动平台(Android、iOS)、基于
|
|
|
|
> Web 的平台以及主机平台。
|
|
|
|
>
|
|
|
|
> Godot 在 [宽松的 MIT 许可证](https://docs.godotengine.org/zh-cn/4.x/about/complying_with_licenses.html#doc-complying-with-licenses) 下完全自由且开源,没有附加条件、没有抽成、什么都没有。用户的游戏乃至引擎的每一行代码,都归用户自己所有。Godot 的开发完全独立且由社区驱动,允许用户为满足需求重塑引擎。它受到不以盈利为目标的 [Godot 基金会](https://godot.foundation/)支持。
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
EGFramework - 功能一览
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
mindmap
|
|
|
|
root((EGFramework))
|
|
|
|
★Tools
|
|
|
|
SaveTools
|
|
|
|
GenerateTools
|
|
|
|
ProtocolTools
|
|
|
|
Extension
|
|
|
|
CRC
|
|
|
|
Convert
|
|
|
|
DateTime
|
|
|
|
Encoding
|
|
|
|
SQL
|
|
|
|
IP
|
|
|
|
CommandSequence
|
|
|
|
EGCQRS
|
|
|
|
IOCManage
|
|
|
|
EGObject
|
|
|
|
EventManage
|
|
|
|
EGEvent
|
|
|
|
EasyEvent
|
|
|
|
```
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
EGFramework - SaveTools
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
mindmap
|
|
|
|
root((SaveTools))
|
|
|
|
Data
|
|
|
|
CSV
|
|
|
|
LiteDB
|
|
|
|
Dapper
|
|
|
|
MySql
|
|
|
|
Sqlite
|
|
|
|
|
|
|
|
File
|
|
|
|
FTP
|
|
|
|
SFTP
|
|
|
|
LocalFileSystem
|
|
|
|
WebDav - Not Complete
|
|
|
|
Object
|
|
|
|
Json
|
|
|
|
Redis
|
|
|
|
Byte - Not Complete
|
|
|
|
```
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
EGFramework - ProtocolTools
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
mindmap
|
|
|
|
root((ProtocolTools))
|
|
|
|
EGMessage
|
|
|
|
ProtocolSchedule
|
|
|
|
Internet
|
|
|
|
TCPClient
|
|
|
|
TCPServer
|
|
|
|
UDP
|
|
|
|
MQTT
|
|
|
|
SSH
|
|
|
|
WebsocketClient
|
|
|
|
WebsocketServer - Only Godot
|
|
|
|
SerialPort
|
|
|
|
Other
|
|
|
|
FileStream
|
|
|
|
Process
|
|
|
|
Soft
|
|
|
|
CommandLine
|
|
|
|
```
|
|
|
|
|
|
|
|
EGFramework-GenerateTools
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
mindmap
|
|
|
|
root((Generate-Tools))
|
|
|
|
Dialog
|
|
|
|
Basic
|
|
|
|
Confirm
|
|
|
|
Edit
|
|
|
|
File
|
|
|
|
UI
|
|
|
|
EditParam
|
|
|
|
Table
|
|
|
|
Menu
|
|
|
|
Tree
|
|
|
|
Inteface
|
|
|
|
Variant
|
|
|
|
Tree
|
|
|
|
Range
|
|
|
|
Select
|
|
|
|
Path
|
|
|
|
ReadOnly
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 一、准备工作
|
|
|
|
|
|
|
|
## 1.下载开发环境
|
|
|
|
|
|
|
|
本章节所有环境均在开源IDE `VSCode`,`Godot4.3 - .NET` 的环境下进行,请确保已经下载好`VSCode`,`Godot4.3 - .NET`,<b>本项目Godot版本可能并非最新</b>,但作者会尽可能的升级至最新版的Godot,在此之间请按照如下方式进行框架的集成工作,如果您有购买Rider或者其他编码工具可以根据自己的喜好来替代VSCode。
|
|
|
|
|
|
|
|
## 2.VSCode 插件安装
|
|
|
|
|
|
|
|
打开VSCode, 按下`Ctrl+Shift+X`,在搜索栏里面搜索`C# Tools for Godot`,安装该插件,因为该插件可能依赖于`C#`插件,同时需要安装`C#`插件。
|
|
|
|
|
|
|
|
同上,搜索并安装`NuGet Package Manager GUI`插件,用于Nuget包的安装与管理。
|
|
|
|
|
|
|
|
## 3.Nuget包的安装
|
|
|
|
|
|
|
|
打开VSCode,将如下部分替换或增加至您名称为*.csproj后缀的工程文件下。
|
|
|
|
|
|
|
|
```xml
|
|
|
|
<ItemGroup>
|
|
|
|
<PackageReference Include="System.IO.Ports" Version="8.0.0" />
|
|
|
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
|
|
|
<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.1" />
|
|
|
|
<PackageReference Include="System.Text.Encoding.CodePages" Version="8.0.0" />
|
|
|
|
<PackageReference Include="WebDav.Client" Version="2.8.0" />
|
|
|
|
<PackageReference Include="MQTTnet" Version="4.3.3.952" />
|
|
|
|
<PackageReference Include="Makaretu.Dns.Multicast" Version="0.27.0" />
|
|
|
|
<PackageReference Include="Microsoft.Extensions.Configuration.Ini" Version="8.0.0" />
|
|
|
|
<PackageReference Include="LiteDB" Version="5.0.21" />
|
|
|
|
<PackageReference Include="BACnet" Version="2.0.4" />
|
|
|
|
<PackageReference Include="MySql.Data" Version="9.1.0" />
|
|
|
|
<PackageReference Include="Dapper" Version="2.1.35" />
|
|
|
|
<PackageReference Include="SSH.NET" Version="2024.2.0" />
|
|
|
|
<PackageReference Include="StackExchange.Redis" Version="2.8.31" />
|
|
|
|
<PackageReference Include="FluentFTP" Version="52.1.0" />
|
|
|
|
</ItemGroup>
|
|
|
|
```
|
|
|
|
|
|
|
|
首次编译确保计算机可以联网,并可以连接该网站[NuGet Gallery | Home](https://www.nuget.org/)
|
|
|
|
|
|
|
|
注意:这些Nuget包仅为目前框架版本所用,后续可能会有新的Nuget包导入,会在此处列出。
|
|
|
|
|
|
|
|
## 4.删除不需要的Module(可选)
|
|
|
|
|
|
|
|
如果您只想使用部分功能,或者不想安装对应的Nuget包依赖,可以直接删除对应的Module脚本文件。
|
|
|
|
|
|
|
|
无需担心,除了部分Module存在相关依赖,大部分Module是支持直接删除的。
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 二、框架简介
|
|
|
|
|
|
|
|
由于该框架使用了较多的Nuget包实现相关的功能,所以安装较为繁琐,同时因为用到较多的扩展方法,提示词可能比较冗余。您可以通过删除对应的Module来定制化自己的框架,也可以新增自己的Module来扩展自己的框架。
|
|
|
|
|
|
|
|
如果使用的Nuget包牵扯有侵犯您的许可,请联系作者Mail:1031139173@qq.com,作者尽可能第一时间删除对应的Module功能。
|
|
|
|
|
|
|
|
第三方许可文件均存放在目录addons\EGFramework\License_Third_Part下面
|
|
|
|
|
|
|
|
## 2.1 使用框架
|
|
|
|
|
|
|
|
添加using,并继承接口IEGFramework,即可使用该框架了。
|
|
|
|
|
|
|
|
```csharp
|
|
|
|
using Godot;
|
|
|
|
using static Godot.GD;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
using EGFramework;
|
|
|
|
|
|
|
|
public partial class EGTest : Node,IEGFramework{
|
|
|
|
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
更多可参考Example。
|
|
|
|
|
|
|
|
# 三、目录
|
|
|
|
|
|
|
|
## [ProtocolTools](./Manual/ProtocolTools.md)
|
|
|
|
|
|
|
|
## [SaveTools](./Manual/SaveTools.md)
|
|
|
|
|
|
|
|
## [GenerateTools](./Manual/GenerateTools.md)
|
|
|
|
|