前言

1.前三个框架只能说是一种简单的框架,没有系统的规范比较简单易懂,个人设计的随意性可以。耦合性会有点高,我们总说代码设计的好坏就是看耦合性,什么是耦合性呢?耦合性就是类与类之间的关系,被调用的类如果发生改变会严重影响使用调用它的类的改变,那就耦合性就是极高的。所以很多框架设计主要的逻辑方向就是解耦,解耦通过创建中间层,调用方与被调方之间的影响降到最低。
2.MVCS(StrangeIOC)和MVVM(uFram)这样的框架其实就是每一层都有中介层。层的话分主要是因为MVC这个框架,MVC框架主要是将数据层、业务逻辑层、视图层三者进行分离,为什么分离的原因就是因为软件的不变真理“改变”(软件是一直在改变修改的);可能哪一天我想改个UI,但是如果我没有进行层次划分的话,那么可能存在我改个UI但是影响到我的数据,前人遇到很多问题才会想到框架。

1.EmptyGO

1.空物体:首先什么是空物体,其实就是在unity中创建一个空物体,将脚本放到空物体上,调用此脚本的方法就需要调用GameObject.Find()方法。
2.缺点:消耗资源,如果在项目中的话会存在挂载多个脚本不易于管理。

2.Simple GameManager

1.简单管理类:什么是简单管理类呢,创建一个空物体作为单利,在Unity中可能会写伪单利;
2.管理类中你会写很多项目中需要调用的方法,导致此类过于臃肿,与设计模式中类的单一原则造成冲突。
3.优点:适用于小型项目,可能只是为了实现几个小功能而已。

//伪单利,不能成为真正的单利,什么是真正的单利,在整个项目中只能有一个;
//但是伪单利会通过多次加载此场景而生成new多个。
//(在untiy中所有继承MonoBehavior的脚本是不需要通过new生成,因为unity底层已经将挂载在场景的MonoBehavior的子类new出来了)
public class GameManager
{public static GameManager Instance;void Awake(){Instance=this;    }}

3.Manager of Managers

1.管理管理类们:什么叫做管理管理类们,它是将一个管理多个简单管理类的组合,根据项目的需求,我们可能存在很多管理类,比如:声音管理类,UI管理类,对象池管理类,关卡管理类等。每个简单管理类中都只是管理与自己相关的类,保证了单一原则。
2.适合中型以上的项目特别适用的方法。做到代码复用 。
3.如下是一些举例:
    1)ventManager:通常希望在一个集中地方管理所有的UI和到各个地方模块之间的消息,以及各个模块之间的消息。 
    2)AudioManager:在项目中访问音频文件。 
    3)GUIManager:所有UI发生的Click事件管理。 
    4)PoolManager:很重要。C#中创建和销毁一个对象很消耗。 
    5)LevelManager:管理关卡。 
    6)GameManager:不可以复用的游戏逻辑管理。 
    7)SaveManager:保存数据管理。 
    8)MenuManager:管理动画和场景中显示。等等

4.MVC

1.主要讲一下什么是MVC框架,因为Untiy中MVC框架是无法满足的。框架就是协议是规定,所以很多时候你只要确定哪些东西属于哪个层,这点是很难的。
2.首先什么是M层,M层就是数据Model层,用于保存数据。
3.V层是什么,V层是视图层,就是我们能看见所有东西都是V层的,比如场景,一个GameObject;
4.C层是什么,V层与M层之间的交互是通过C层进行,逻辑控制层。
5.比如说V层用户点击跳转场景按钮,这是用户对V层的按钮进行了操作,V层将此消息发送给C层,C层接收到后需要去访问M层获取到我将要跳转的场景名称;C层将场景名称告诉给V层,V层根据名称进行跳转。可能我们会发现挺麻烦,但是如果一开始我们的场景数据是Scene1,但是后期想修改跳转的场景是Scene2,我们就只需要修改M层的数据,对于V层的按钮不会任何影响,这就是解耦的魅力。
6.代码的写法以及使用是没有规范,但是框架的约束就做到整洁性,一个好的程序员只有写出简单易懂整洁的代码就是好的程序员。因为项目中我们不是独立体,需要团队的配合。

5.MVCS(Strangeloc)

1.StrangeIOC的理解比较难,但是使用还是很简单,因为他是依托于MVC框架,MVC中我们发现我们做到层与层之间解耦,但是层与层之间的沟通(调用与被调用)是没有进行封装。我个人理解StrangeIOC增加一个种沟通机制,包括信号和命令。将信号与信号之间又做了一层解耦,命令与命令之间做到解耦。有点像观察者模式。官网的教程都是英文,大家可以去官网上看文档,讲的还是很细致的。下面这个也是别人共享的中文翻译,感谢大神分享[StrangeIOC](https://www.cnblogs.com/unityzc/p/6182584.html)
2.可以一开始使用StrangeICO会不太习惯,脚本也会巨多,但是个人还是比较喜欢的。真正意义上的解耦。满足了对修改是封闭的,对扩展是开放的原则。

6.MVVM(uFrame)

1.MVVM没有用过,不是开源的,是图形化操作,与StrangeIOC一样,了解一下就行了,就是在M与V层之间在新增一个V层管理。

Unity项目的框架设计相关推荐

  1. unity之游戏UI界面框架设计实战学习(一)

    游戏UI界面框架设计实战精讲视频课程 配合上博客 刘老师讲Unity 刚开始接触UI界面. 觉得讲得非常好. 做一下笔记. 课程总体分为七大部分: 一: UI框架设计理念 整体简单介绍即将带领大家开发 ...

  2. 视频教程-Unity客户端框架设计PureMVC篇视频课程(上)-Unity3D

    Unity客户端框架设计PureMVC篇视频课程(上) 二十多年的软件开发与教学经验IT技术布道者,资深软件工程师.具备深厚编程语言经验,在国内上市企业做项目经理.研发经理,熟悉企业大型软件运作管理过 ...

  3. 视频教程-Unity客户端框架设计PureMVC篇视频课程(下)-Unity3D

    Unity客户端框架设计PureMVC篇视频课程(下) 二十多年的软件开发与教学经验IT技术布道者,资深软件工程师.具备深厚编程语言经验,在国内上市企业做项目经理.研发经理,熟悉企业大型软件运作管理过 ...

  4. 第三:项目框架设计介绍

    一:robot framework介绍 Robot Framework是一款python编写的功能自动化测试框架.具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布 ...

  5. 智能家居项目(三)之框架设计及框架代码文件工程建立

    目录 一.智能家居项目框架设计草图 二.框架代码文件工程建立 三.添加声音识别模块的串口读取功能 一.智能家居项目框架设计草图 代码思路讲解: 1.一个指令工厂,一个控制工厂,实际上就是通过链表链起来 ...

  6. Unity项目UI管理简易框架

    一.背景 在一个Unity项目中或多或少需要一些UI,如设置页面,登录页面等,当页面过多时,使用一个通用的UI框架来进行针对性开发会大大减少造轮子的过程. 以下即为参考之前做过的一些项目整理出来的一个 ...

  7. 图床项目之后台框架设计

    图床项目后台框架 0.后台数据处理框架 一.注册功能 二.登陆功能 三.用户文件列表 3.1.文件数量 3.2.文件列表 四.上传文件之秒传机制 五.上传文件 六.获取共享文件或下载榜 6.1.获取共 ...

  8. 游戏UI框架设计(三) : 窗体的层级管理

    游戏UI框架设计(三) ---窗体的层级管理 UI框架中UI窗体的"层级管理",最核心的问题是如何进行窗体的显示管理.窗体(预设)的显示我们前面定义了三种类型: 普通.隐藏其他.反 ...

  9. unity 项目实践经验 和 架构体系

    GameRes游资网授权发布 文 / 吴秦(Tyler) 本次分享总结,起源于腾讯桌球项目,但是不仅仅限于项目本身.虽然基于Unity3D,很多东西同样适用于Cocos.本文从以下10大点进行阐述: ...

  10. 游戏UI框架设计(四) : 模态窗体管理

    我们在开发UI窗体时,对于"弹出窗体"往往因为需要玩家优先处理弹出小窗体,则要求玩家不能(无法)点击"父窗体",这种窗体就是典型的"模态窗体" ...

最新文章

  1. [毕业生的商业软件开发之路]C#类型样式
  2. 服务器的ras性能指标,Unix服务器6大原则深度讲解
  3. 【Python】青少年蓝桥杯_每日一题_3.19_约分
  4. 【Pytorch神经网络理论篇】 32 PNASNet模型:深层可分离卷积+组卷积+空洞卷积
  5. python3 虚拟环境 pip 版本_【python知识】 - Python3之PIPENV虚拟环境及封装
  6. ASP.NET_ASP.NET Cookies
  7. 基于JAVA+SpringBoot+Mybatis+MYSQL的中小型超市进销存管理系统
  8. 每天CookBook之JavaScript-073
  9. Shiro(二)——Shiro认证入门案例
  10. namp 端口扫描技术
  11. 傻子都能看懂的 财务报表入门
  12. 【优化模型】求非齐次线性方程组的通解
  13. Threejs 精灵火焰特效 Sprite Firey Aura effect
  14. 编程语言Python为什么这么火?
  15. android 获取控件在屏幕中位置
  16. 微信跳一跳python_用python来玩微信跳一跳
  17. 第13章-1~3 法兰接头预紧力密封接触分析(模型简化、网格调整、约束)并行计算设置、摩擦接触设置adjust to touch 、约束设置frictionless support、bolt
  18. mysql 学生成绩最高分的学科_sql查询成绩表中每一科成绩最高的分数以及这个学生的名字,学科名,面试的时候碰到的问题...
  19. 小马智行与速腾聚创展开全面战略合作
  20. Python倒叙的几种方法

热门文章

  1. 百度网盘Python客户端bypy
  2. 四川取消英语计算机考试,2020年起,四川将不再承接全国英语等级考试,已有多省份停考!...
  3. pychart绘制中国地图用英文省名
  4. kindle亚马逊个人文档不显示_Kindle的PC版如何看个人文档
  5. 中国邮路算法(中国邮递员问题)(详细)
  6. 测度论与概率论基础(程士宏)学习笔记(三)
  7. 讯飞输入法pad版x86_讯飞输入法Pad版软件下载_讯飞输入法Pad版app下载_讯飞输入法Pad版安卓下载_亲亲宝贝网...
  8. office 2016 word文档另存为pdf之后文本内容显示不全
  9. PS零基础入门系列-PS图层样式案例实用技巧
  10. 阿里天池大数据竞赛——口碑商家客流量预测 A1