26 Star 288 Fork 88

凉鞋 / QFramework

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

LOGO

QFramework 简介 Intro

中文|English

QFramework 是提供一套简单、强大、易上手、符合 SOLID 原则、支持领域驱动设计(DDD)、事件驱动、数据驱动、分层、MVC 、CQRS、模块化、易扩展的架构,她的源码只有不到 1000 行,你可以完全把她放在你的笔记应用里保存。

提供的架构图

举个例子(一图胜千言😂)

各种情况的示意图

架构使用规范

QFramework系统设计架构分为四层及其规则:

  • 表现层:ViewController层。IController接口,负责接收输入和状态变化时的表现,一般情况下,MonoBehaviour 均为表现层
    • 可以获取System
    • 可以获取Model
    • 可以发送Command
    • 可以监听Event
  • 系统层:System层。ISystem接口,帮助IController承担一部分逻辑,在多个表现层共享的逻辑,比如计时系统、商城系统、成就系统等
    • 可以获取System
    • 可以获取Model
    • 可以监听Event
    • 可以发送Event
  • 数据层:Model层。IModel接口,负责数据的定义、数据的增删查改方法的提供
    • 可以获取Utility
    • 可以发送Event
  • 工具层:Utility层。IUtility接口,负责提供基础设施,比如存储方法、序列化方法、网络连接方法、蓝牙方法、SDK、框架继承等。啥都干不了,可以集成第三方库,或者封装API
  • 除了四个层级,还有一个核心概念——Command
    • 可以获取System
    • 可以获取Model
    • 可以发送Event
    • 可以发送Command
  • 层级规则:
    • IController 更改 ISystem、IModel 的状态必须用Command
    • ISystem、IModel状态发生变更后通知IController必须用事件或BindableProperty
    • IController可以获取ISystem、IModel对象来进行数据查询
    • ICommand不能有状态
    • 上层可以直接获取下层,下层不能获取上层对象
    • 下层向上层通信用事件
    • 上层向下层通信用方法调用(只是做查询,状态变更用Command),IController的交互逻辑为特别情况,只能用Command

(照抄自:学生课堂笔记1

运行环境

  • Unity 2018.4.x ~ 2021.x

安装

资源

版本
QFramework.cs QFramework 本体架构的实现 文件
QFramework.cs 示例 QFramework.cs 与官方示例: CounterApp、《点点点》、FlappyBird、CubeMaster、ShootingEditor2D、贪吃蛇等 点此下载 unitypackage
QFramework.Toolkits QFramework 集成 CoreKit/UIKit/ActionKit/ResKit/PackageKit/AudioKit 等全部官方工具(已包含 QFramework.cs 和 示例) 点此下载 unitypackage
QFramework.Toolkits.Demo.WuZiQi 使用 QFramework.Toolkits 开发的五子棋 Demo(需要安装好 QFramework.Toolkits) 点此下载 unitypackage
QFramework.Toolkits.Demo.Saolei 使用 QFramework.Toolkits 开发的扫雷 Demo(需要安装好 QFramework.Toolkits) 点此下载 unitypackage
QFramework.ToolKitsPro 在 ToolKits 基础上集成更多好用的工具的版本(已包含 QFramework.Toolkits) AssetStore
群友案例
赛车游戏《Crazy Car》 群友 TastSong 使用 QF 进行重构的开源赛车游戏 游戏主页(Github)
社区
QQ 群:623597263 交流群 点击加群
github issue github 社区 地址
gitee issue gitee 社区(国内访问快) 地址
教程
《框架搭建 决定版》 教程 QFramework 的核心架构是怎么演化过来的? 课程主页|学生课堂笔记1|学生课堂笔记2
产品案例 如果用了 qf 并且想要在如下列表中登记,可以在 github/gitee 的 issue 里发帖子,也可以加 qq 群,也可以用邮箱联系凉鞋 liangxiegame@163.com
独立游戏《当火车鸣笛三秒》 部分使用 QF 制作的独立游戏 Steam|TapTap
独立游戏《你好茄子》 部分使用 QF 制作的独立游戏 游戏主页(Steam)
独立游戏《第一座山》 部分使用 QF 制作的独立游戏 游戏主页(Steam)
独立游戏《推灭泡泡姆》 ‍QF 群友,大学生团队制作的独立游戏,终于等到上架啦,亲自游玩过,很好玩,大家多多支持呀~(P.S 使用 QF.cs 作为架构开发的哦~) 游戏主页(TapTap)
独立游戏《鬼山之下》 部分使用 QF 制作的独立游戏 游戏主页(Steam)
手机游戏《谐音梗挑战》 部分使用 QF 制作的独立游戏 游戏主页(TapTap)
其他相关教程
《独立游戏体验计划》(猫叔) 独立游戏制作体验教程,有用到 QFramework.cs b 站
《原创独立游戏制作:平台射击 Roguelike》(凉鞋) 原创独立游戏制作教程,有用到 QFramework.cs b 站
《原创独立游戏制作:类星露谷》(凉鞋) 原创独立游戏制作教程,有用到 PlayMaker、QFramework.Tookits b 站
《QFramework 游戏开发:类幸存者》 面向 QFramework 的游戏开发教程,完成一款类吸血鬼幸存者游戏。 b 站
《QFramework 教程年会员》 QFramework 相关的课程案例 GamePix

Star 趋势(如果项目有帮到您欢迎点赞)

Stargazers over time

贡献者

优秀的 Unity 库、框架

代码规范完全遵循:

QCSharpStyleGuide

赞助 Donate:

  • 如果觉得不错可以在 这里 Asset Store 给个 5 星哦~ give 5 star
  • 或者给此仓库一个小小的 Star~ star this repository
  • 以上这些都会转化成我们的动力,提供更好的技术服务!

鸣谢

感谢 JetBrains 公司提供的使用许可证!

JetBrains的Logo

本开源项目由 QFramework 教程年会员 提供资助

MIT License Copyright (c) 2023 凉鞋 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

Unity3D System Design Architecture 展开 收起
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C#
1
https://gitee.com/liangxiegame/QFramework.git
git@gitee.com:liangxiegame/QFramework.git
liangxiegame
QFramework
QFramework
master

搜索帮助