QFramework 是提供一套简单、强大、易上手、符合 SOLID 原则、支持领域驱动设计(DDD)、事件驱动、数据驱动、分层、MVC 、CQRS、模块化、易扩展的架构,她的源码只有不到 800 行,你可以完全把她放在你的笔记应用里保存。
- Unity 2018.4.x ~ 2021.x
- PackageManager
- add from package git url:https://github.com/liangxiegame/QFramework.git
- 或者国内镜像仓库:https://gitee.com/liangxiegame/QFramework.git
- 或者直接复制此代码到自己项目中的任意脚本中
名称 | 描述 | 地址 |
---|---|---|
示例/Demo | ||
Example 示例 | 包含 CounterApp、《点点点》小游戏等 QF 使用示例 | github|gitee |
ShootingEditor2D | 包含一个关卡编辑器的开源射击游戏 | github|gitee |
群友案例 | ||
赛车游戏《Crazy Car》 | 群友 TastSong 使用 QF 进行重构的开源赛车游戏 | 游戏主页(Github) |
社区 | ||
QQ 群:623597263 | 交流群 | 点击加群 |
github issue | github 社区 | 地址 |
gitee issue | gitee 社区(国内访问快) | 地址 |
教程 | ||
教程《框架搭建 决定版》 | 教程 QFramework 的核心架构是怎么演化过来的? | 课程主页 |
产品案例 | ||
独立游戏《鬼山之下》 | 使用 QF 制作的独立游戏 | 游戏主页(Steam) |
手机游戏《谐音梗挑战》 | 使用 QF 制作的手机游戏 | 游戏主页(TapTap) |
官方工具 | ||
SingletonKit | 易上手功能强大的单例工具,由 QF 官方维护 | github|gitee |
ExtensionKit | 易上手功能强大的 C#/UnityAPI 的静态扩展 ,由 QF 官方维护 | github|gitee |
IOCKit | 易上手功能强大的 IOC 容器 ,由 QF 官方维护 | github|gitee |
TableKit | 一套类似表格的数据结构(List<List<T>>),兼顾查询效率和联合强大的查询功能,由 QF 官方维护 | github|gitee |
PoolKit | 对象池工具,由 QF 官方维护 | github|gitee |
LogKit | 日志工具,由 QF 官方维护 | github|gitee |
- ET:ET Unity3D Client And C# Server Framework
- IFramework(OnClick) Simple Unity Tools
- TinaX Framework “开箱即用”的Unity独立游戏开发工具
- JEngine 一个基于XAsset&ILRuntime,精简好用的热更框架
- 如果觉得不错可以在 这里 Asset Store 给个 5 星哦~ give 5 star
- 或者给此仓库一个小小的 Star~ star this repository
- 以上这些都会转化成我们的动力,提供更好的技术服务!
以下内容待整理内容
1.Action Kit
- chainning style(Driven by MonoBehaviour or Update)
this.Sequence()
.Delay(1.0f)
.Event(()=>Log.I("Delayed 1 second"))
.Until(()=>something is done)
.Begin();
- object oriented style
var sequenceNode = new SequenceNode();
sequenceNode.Append(DelayAction.Allocate(1.0f));
sequenceNode.Append(EventAction.Allocate(()=>Log.I("Delayed 1 second"));
sequenceNode.Append(UntilAction.Allocate(()=>something is true));
this.ExecuteNode(sequenceNode);
2.Res Kit
// allocate a loader when initialize a panel or a monobehavour
var loader = ResLoader.Allocate();
// load someth in a panel or a monobehaviour
loader.LoadSync<GameObject>("resources://smobj");
loader.LoadSync<Texture2D>("resources://Bg");
// load by asset bundle's assetName
loader.LoadSync<Texture2D>("HomeBg");
// load by asset bundle name and assetName
loader.LoadSync<Texture2D>("home","HomeBg");
// resycle this panel/monobehaivour's loaded res when destroyed
loader.Recycle2Cache();
loader = null;
3.UI Kit
// open a panel from assetBundle
UIKit.OpenPanel<UIMainPanel>();
// load a panel from specified Resources
UIKit.OpenPanel<UIMainPanel>(prefabName:"Resources/UIMainPanel");
// load a panel from specield assetName
UIKit.OpenPanel<UIMainPanel>(prefabName:"UIMainPanel1");
- MultyFramework
- IFramework_GUICanvas
- IFramework
- Loxodon Framework
- BDFramework
- HGFramework: Unity3D客户端框架
- Qarth: Framework For Game Develop With Unity3d
- GameFramework:A game framework based on Unity 5.3 and later versions
- cocos2d/cocos2d-x
- ResetCore.Unity
- UnityUGUIImageShaderPack
- FishManShaderTutorial
模块名称 | 包含功能 | 描述 |
---|---|---|
Core | 一套全栈通用的系统设计架构,QF 的本身是用这套架构设计,同时这套架构可以应用与项目开发,为 QF 的主要提供架构,QF 的文档系统(React)、QF 的插件系统(.Net Core)均用此架构开发。 | |
CodeGen | 代码生成库,一套链式代码生成模板。 | |
Event | 事件机制实现,包含枚举事件 和 类型事件 | |
Pool | 各种对象池提供,包含 List、Dictionary 对象池 | |
FSM | 一套基于类型的状态机实现 | |
RefCounter | 引用计数器实现 | |
EasyIMGUI | 方便易用的、面向对象的(组合模式)的 IMGUI(OnGUI)绘制库 | |
Utility | 各种静态方法封装 | |
ManagerOfManagers(弃用) | Manager Of Managers 架构的实现 | |
ActionKit | 之后写 | |
ResKit | SimulationModel | 真机和编辑器模拟资源加载双模式,让开发阶段与真机阶段自如切换 |
ResPathLoad | 从Resources目录与沙盒目录以及从网络中加载资源 | |
LoadSprite | 加载Sprite或精灵图集 | |
LoadScene | 在AssetBundle中同步与异步加载Scene场景 | |
ResAssetManager | 标记的AssetBunlde资源管理,快速定位 | |
LoadASync | 异步加载与异步队列加载 | |
CustomRes | Reskit功能自定义拓展 | |
CustomLoadConfig | AssetBundle自定义配置表生成 | |
UIKit | 之后写 | |
AudioKit | 之后写 |