[TOC]
QFramework 是提供一套简单、强大、易上手、符合 SOLID 原则、支持领域驱动设计(DDD)、事件驱动、数据驱动、分层、MVC 、CQRS、模块化、易扩展的架构,她的源码只有不到 800 行,你可以完全把她放在你的笔记应用里保存。
- Unity 2018.4.x ~ 2021.x
-
从 Asset Store 下载
-
PackageManager
- add from package git url:https://github.com/liangxiegame/QFramework.git
- 或者国内镜像仓库:https://gitee.com/liangxiegame/QFramework.git
-
或者直接复制此代码到自己项目中的任意脚本中
-
OpenUPM(TODO)
- Example (安装后即可运行)
鬼山之下 | 谐音梗挑战 |
---|---|
- ET:ET Unity3D Client And C# Server Framework
- IFramework(OnClick) Simple Unity Tools
- JEngine 一个基于XAsset&ILRuntime,精简好用的热更框架
- 如果觉得不错可以在 这里 Asset Store 给个 5 星哦~ give 5 star
- 或者给此仓库一个小小的 Star~ star this repository
- 以上这些都会转化成我们的动力,提供更好的技术服务!
以下内容待整理内容
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");
- 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 | 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 | 之后写 |