You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
jkpete b52a480ed8 fixed functionlist 10 months ago
Example fixed functionlist 10 months ago
Font fixed to complitable and bind udp port to send data 1 year ago
addons/EGFramework fixed generator 10 months ago
.gitattributes First commit 2 years ago
.gitignore First commit 2 years ago
EGFramework.csproj update third part license and notice 10 months ago
EGFramework.png change to PNG 10 months ago
EGFramework.png.import change to PNG 10 months ago
EGFramework.sln First commit 2 years ago
EGFramework.svg fixed icon 10 months ago
EGFramework.svg.import fixed icon 10 months ago
LICENSE fixed license author 2 years ago
ReadMe.md fixed Readme 10 months ago
icon.svg First commit 2 years ago
icon.svg.import fixed some texture import type for support android export 1 year ago
project.godot add protocol tools 10 months ago

ReadMe.md

Logo

EGFramework 使用手册


引言

EGFramework全称Everyone's Godot framework,基于Godot开源引擎,使用C#编写,目前仅兼容Godot4.3 - .NET,部分兼容Godot3.5 - .NET,是完全开源的组件式,功能分布的框架,使用时可以自己根据需求安装对应的Module来实现对应的功能,同样也可以裁剪对应的Module来删减对应的功能。

ModuleEGFramework的核心组成部分,也是EGFramework中重要的扩展依据。

目前该框架可能还有很多欠缺与不足,最终目的是做一个方便可靠好用的通讯&存储&资源生成&界面生成框架、用户无需过多学习、开箱即用。

关于Godot引擎(摘自Godot Engine (4.x) 简体中文文档

Godot 引擎是一款功能丰富的跨平台游戏引擎,可以通过统一的界面创建 2D 和 3D 游戏。它提供了一套全面的通用工具,因此用户可以专注于制作游戏,而无需重新发明轮子。游戏可以一键导出到多个平台,包括主流的桌面平台(Linux、macOS、Windows)、移动平台(Android、iOS)、基于 Web 的平台以及主机平台。

Godot 在 宽松的 MIT 许可证 下完全自由且开源,没有附加条件、没有抽成、什么都没有。用户的游戏乃至引擎的每一行代码,都归用户自己所有。Godot 的开发完全独立且由社区驱动,允许用户为满足需求重塑引擎。它受到不以盈利为目标的 Godot 基金会支持。


一、准备工作

1.下载开发环境

本章节所有环境均在开源IDE VSCodeGodot4.3 - .NET 的环境下进行,请确保已经下载好VSCodeGodot4.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后缀的工程文件下。

<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

注意:这些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,即可使用该框架了。

using Godot;
using static Godot.GD;
using System.Collections.Generic;
using EGFramework;

public partial class EGTest : Node,IEGFramework{
    
}

更多可参考Example。

2.2 发送与监听消息

2.3 使用本地存储

三、EGFramework-API

目前已有的EGFramework功能组件。标记是目前已编写完成,未标记是未编写完成或未测试。

  • ProtocolTools&ProtocolExtension
  • SaveTools
  • OtherTools
  • Extension
  • NodeExtension(仅Godot下可用)
  • GenerateTools
  • UITools

3.1 消息篇(EGMessage-ProtocolTools)


通讯支持

  • TCPClient
  • TCPServer
  • UDP(Listen&Send)
  • SerialPort
  • Ssh
  • WebSocketClient
  • Bacnet
  • MQTT
  • HttpClient
  • HttpServer

异步处理支持

  • FileStream
  • Process

3.2 存储篇(EGMessage-ProtocolTools)

键值对象存储支持

  • Json
  • Redis
  • Byte

数据存储支持

  • Csv
  • LiteDB
  • MySQL(Dapper)
  • Sqlite(Dapper)
  • Dapper

文件存储支持

  • FTP
  • LocalFile
  • Sftp
  • WebDav