[TOC]
QFramework 是一套 渐进式 的 快速开发 框架。目标是作为无框架经验的公司、独立开发者、以及 Unity3D 初学者们的 第一套框架。框架内部积累了多个项目的在各个技术方向的解决方案。学习成本低,接入成本低,重构成本低,二次开发成本低,文档内容丰富(提供使用方式以及原理、开发文档)、插件丰富。github:https://github.com/liangxiegame/QFramework
码云国内镜像仓:https://gitee.com/liangxiegame/QFramework
模块名称 | 包含功能 | 描述 |
---|---|---|
Core | Architecture | 一套全栈通用的系统设计架构,QF 的本身是用这套架构设计,同时这套架构可以应用与项目开发,为 QF 的主要提供架构,QF 的文档系统(React)、QF 的插件系统(.Net Core)均用此架构开发。 |
CodeGen | 代码生成库,一套链式代码生成模板。 | |
Singleton | 一套单例模板工具 | |
IOC | 依赖注入/控制反转容器 | |
Event | 事件机制实现,包含枚举事件 和 类型事件 | |
Pool | 各种对象池提供,包含 List、Dictionary 对象池 | |
FSM | 一套基于类型的状态机实现 | |
Disposable | 销毁模式 和 对应扩展方法实现 | |
Factory | 对象的创建模式封装 | |
RefCounter | 引用计数器实现 | |
CSharpExtensions | 大量的方便易用的扩展实现 | |
Table | 可以建立索引的表格数据结构实现 | |
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 | 之后写 |
鬼山之下 | 谐音梗挑战 |
---|---|
![]() |
![]() |
- ResKit 完善(h3166179)
- ILRuntime 方案初始版本(王二 so-sos-so )
- 插件、内置模块整理:跑酷 Demo 更新最新架构(凉鞋 liangxieq)
1.ViewController和Bind的基本使用 自动生成脚本
自动生成的脚本如下:
2.ViewController和ViewController的嵌套使用
自动生成的脚本如下:
3.自动生成Prefab
4.使用UIKit创建Prefab和脚本
自动生成的脚本如下:
5.使用UIKit子控件UIElement
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");
- 文档 Document:http://qf.liangxiegame.com/qf/community
- 如在使用中遇到问题请提交 这里 issue,我们团队会在一天内快速回复并着手解决。
- **QQ 群:623597263 **:在 QQ 群内提问,会马上得到回复。
- 社区:https://qframework.cn
- awesome_qframework
- 如果觉得不错可以在 这里 Asset Store 给个 5 星哦~ give 5 star
- 或者给此仓库一个小小的 Star~ star this repository
- 以上这些都会转化成我们的动力,提供更好的技术服务!
- Unity 5.6.x ~ 2021.x
- 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
- ET:ET Unity3D Client And C# Server Framework
- IFramework(OnClick) Simple Unity Tools
- JEngine 一个基于XAsset&ILRuntime,精简好用的热更框架