QFramworks

在写一个项目的时候,不要短视地说我就把这个项目做完了,就是交一个差上线了就完了,我们希望每写一个游戏的时候,我们都积累一些东西,把写的每一行代码,都当成是一个可以收藏的,甚至是可以传递下去的这样的一个资产。有了这样一个思想,可能我们在写代码的时候,整个的思维模式会完全不一样。——刘钢《Unity 项目架构和开发管理》
以上这段话来自刘钢老师的讲座《Unity项目架构设计与开发管理》 的结尾。

Unity 项目架构设计与开发管理
笔者比较幸运,在学习 Unity 之后不久就看了刘钢老师的这个视频,笔者当时很受启发。而视频中所提出的 Manager Of Managers 很好地为 QFramework 指明了方向。视频讲得通俗易懂,里边很多内容都值得反复咀嚼,笔者之后花了很长时间去消化里边的内容。直到今天,笔者再看一遍视频还是会有很多收获的,希望大家看完之后也有所收获有所启发。
视频中比较精彩的部分是从一个什么架构都没有的项目一点一点演化到 MVVM 和 StrangeIOC 架构。
关于Unity的架构有如下几种常用的方式简单总结如下:

1.EmptyGO:
在 Hierarchy 上创建一个空的 GameObject,然后挂上所有与 GameObject 无关的逻辑控制的脚本。使用GameObject.Find() 访问对象数据。
缺点:逻辑代码散落在各处,不适合大型项目。

2.Simple GameManager:
所有与 GameObject 无关的逻辑都放在一个单例中。 缺点:单一文件过于庞大。

3.Manager Of Managers:
将不同的功能单独管理。如下:
  • MainManager: 作为入口管理器。
  • EventManager: 消息管理。
  • GUIManager: 图形视图管理。
  • AudioManager: 音效管理。
  • PoolManager: GameObject管理(减少动态开辟内存消耗,减少GC)。
  • LevelManager: 关卡管理。
  • GameManager: 游戏管理。
  • SaveManager: 配置&存储管理。
  • MenuManager 菜单管理。

4.将 View 和 Model 之间增加一个媒介层。
MVCS:StrangeIOC 插件。
MVVM:uFrame 插件。

5. ECS (Entity Component Based System)
Unity 是基于 ECS,比较适合 GamePlay 模块使用。 还有比较有名的 Entitas-CSharp

相关链接:
我的框架地址:https://github.com/liangxiegame/QFramework
教程源码:https://github.com/liangxiegame/QFramework/tree/master/Assets/HowToWriteUnityGameFramework/

转载请注明地址:凉鞋的笔记:http://liangxiegame.com/

如果有帮助到您:
如果觉得本篇教程或者 QFramework 对您有帮助,不妨通过以下方式赞助笔者一下,鼓励笔者继续写出更多高质量的教程,也让更多的力量加入 QFramework 。
  • 给 QFramework 一个 Star:https://github.com/liangxiegame/QFramework
  • 下载 Asset Store 上的 QFramework 并给个五星:http://u3d.as/SJ9
  • 购买 gitchat 话题并给 5 星好评: http://gitbook.cn/gitchat/activity/5abc3f43bad4f418fb78ab77 (6 元,会员免费)
  • 购买同名的蛮牛视频课程录播课程并给 5 星好评:http://edu.manew.com/course/431 (目前定价 29.8 元,正在涨价哦)
  • 购买同名电子书 :https://www.kancloud.cn/liangxiegame/unity_framework_design( 29.9 元,内容会在 2018 年 10 月份完结)
笔者在这里保证 QFramework、入门教程、文档和此框架搭建系列的专栏永远免费开源。以上捐助产品的内容对于使用 QFramework 的使用来讲都不是必须的,所以大家不用担心,各位使用 QFramework 或者 阅读此专栏 已经是对笔者团队最大的支持了。

你可能感兴趣的:(unity框架)