Architectures(主流架构)

  1. EmptyGO
  2. Simple GameManager
  3. Manager of Managers
  4. MVCS(StrageloC)
  5. MVVM(uFrame)
    ……….

EmptyGO

  1. 问题:消耗资源;不易于管理

Simple GameManager

  1. 问题:GameManager文件过于庞大,而且不是逻辑相关的脚本代码也很多容易造成混乱。

Manager of Managers

unity3d架构 unity项目架构_unity3d架构


1. 中型以上的项目特别适用的方法。代码复用

2. EventManager:通常希望在一个集中地方管理所有的UI和到各个地方模块之间的消息,以及各个模块之间的消息。

3. AudioManager:在项目中访问音频文件。

4. GUIManager:所有UI发生的Click事件管理。

5. PoolManager:很重要。C#中创建和销毁一个对象很消耗。

6. LevelManager:管理关卡。

7. GameManager:不可以复用的游戏逻辑管理。

8. SaveManager:保存数据管理。

9. MenuManager:管理动画和场景中显示。

Level Manager

unity3d架构 unity项目架构_架构设计_02


unity3d架构 unity项目架构_MVVM_03


unity3d架构 unity项目架构_架构设计_04


unity3d架构 unity项目架构_架构_05


unity3d架构 unity项目架构_unity3d架构_06


1. 为什么使用?加载场景过多,场景复用传递参数;修改场景顺序;

2. 设计:

Pool Manager

unity3d架构 unity项目架构_unity3d架构_07


unity3d架构 unity项目架构_架构_08


unity3d架构 unity项目架构_unity3d架构_09


unity3d架构 unity项目架构_架构_10


unity3d架构 unity项目架构_MVVM_11


unity3d架构 unity项目架构_MVVM_12


unity3d架构 unity项目架构_unity3d架构_13


unity3d架构 unity项目架构_unity3d架构_14

Save Manager

unity3d架构 unity项目架构_UI_15

MVCS(Strageloc)

  1. 中心思想Binding:
  2. IBinder.Bind<Key>().To<Value>();
  3. IBinder.Bind<Key>().To<Value>().ToName(name):当绑定的Key值一样时可以命名区分。






MVVM(uFrame)

  1. 与StrageIoc相似,是图形化操作,但是付费。

架构总结

  1. Model与View必须分离开,有中间层。

管理规则

1.好的架构=好的规则

unity3d架构 unity项目架构_架构设计_16


unity3d架构 unity项目架构_架构_17


unity3d架构 unity项目架构_unity3d架构_18

Unity测试框架