# 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/)支持。 # 一、准备工作 ## 1.下载开发环境 本章节所有环境均在开源IDE `VSCode`,`Godot4.3 - .NET` 的环境下进行,请确保已经下载好`VSCode`,`Godot4.3 - .NET`,本项目Godot版本可能并非最新,但作者会尽可能的升级至最新版的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 ``` 首次编译确保计算机可以联网,并可以连接该网站[NuGet Gallery | Home](https://www.nuget.org/) 注意:这些Nuget包仅为目前框架版本所用,后续可能会有新的Nuget包导入,会在此处列出。 ## 4.删除不需要的Module(可选) 如果您只想使用部分功能,或者不想安装对应的Nuget包依赖,可以直接删除对应的Module脚本文件。 无需担心,除了部分Module存在相关依赖,大部分Module是支持直接删除的。 ## 5.EGFramework构成一栏 目前已有的EGFramework功能组件。标记是目前已编写完成,未标记是未编写完成或未测试。 - [x] ProtocolTools&ProtocolExtension - [x] SaveTools - [x] OtherTools - [x] Extension - [x] NodeExtension(仅Godot下可用) - [ ] GenerateTools - [ ] UITools ### 5.1 消息篇(EGMessage-ProtocolTools) --- #### 通讯支持 - [x] TCPClient - [x] TCPServer - [x] UDP(Listen&Send) - [x] SerialPort - [x] Ssh - [x] WebSocketClient - [x] Bacnet - [x] MQTT - [ ] HttpClient - [ ] HttpServer #### 异步处理支持 - [x] FileStream - [x] Process ### 5.2 存储篇(EGMessage-ProtocolTools) #### 键值对象存储支持 - [x] Json - [x] Redis - [ ] Byte #### 数据存储支持 - [x] Csv - [x] LiteDB - [x] MySQL(Dapper) - [x] Sqlite(Dapper) - [x] Dapper #### 文件存储支持 - [x] FTP - [x] LocalFile - [ ] Sftp - [ ] WebDav # 二、框架简介 由于该框架使用了较多的Nuget包实现相关的功能,所以安装较为繁琐,同时因为用到较多的扩展方法,提示词可能比较冗余。您可以通过删除对应的Module来定制化自己的框架,也可以新增自己的Module来扩展自己的框架。 如果使用的Nuget包牵扯有侵犯您的许可,请联系作者Mail:1031139173@qq.com,作者尽可能第一时间删除对应的Module功能。 第三方许可文件均存放在目录addons\EGFramework\License_Third_Part下面 ## 1.使用框架 添加using,并继承接口IEGFramework,即可使用该框架了。 ```csharp using Godot; using static Godot.GD; using System.Collections.Generic; using EGFramework; public partial class EGTest : Node,IEGFramework{ this.EGSave(); } public class DataTest{ public string PlayerName; public int Hp; } ```