【Unity3D】项目架构设计与开发管理

笔者是观摩刘钢先生讲解的Unity项目架构设计与开发管理后所总结记录的。 同样也推荐你去观摩以下。

0×01 EmptyGO

  • 将所有的代码放到一个空的游戏对象中;
  • 使用GameObject.Find()来找到目标进行使用。

架构设计的雏形实现,缺点是当我们的项目越来越大的时候难以灵活管理;不适合大型项目。

0×02 Simple GameManager

GameManager.Instance.playSound("menu");  
  • 它是把EmptyGO做成一个单例来使用;
  • 比较适合小型项目;
  • 缺点是单一文件过于庞大;
  • 不是即插即用。

0×03 Manager of Managers

  • 使用一个主管理器自定义和管理所有的子管理器。
  • 子管理器作为单例使用,可以轻松地相互协作。

MainManager

EventManager:消息传递管理
AudioManager:音效管理
GUIManager:图形视图管理
PoolManager:GO管理
LevelManager: 关卡管理
GameManager:核心机制管理
SaveManager:游戏进度管理
MenuManager:菜单行为动画管理

0×04 MVCS(StrageIOC)

优点: 将View和Model之间增加一个媒介层

IBinder.Bind().To();

0×05 MVVM(uFrame)

优点:

  • 低耦合
  • 可重用性

【Unity3D】项目架构设计与开发管理_第1张图片

0×06 实体组件系统(ECS)

在2018年,Unity又重点推荐ECS;ECS是一种编写代码的方式,专注于您正在解决的实际问题:组成游戏的数据和行为。其中心为EntityComponentSystem

  • Entity 是实例,作为承载组件的载体,也是框架中维护对象的实体.
  • Component 只包含数据,具备这个组件便具有这个功能.
  • System 作为逻辑维护,维护对应的组件执行相关操作.

除了出于设计原因更好地接近游戏编程之外,使用ECS可以使您处于利用Unity的C#job系统和Burst Compiler的理想位置,让您充分利用当今的多核处理器。

使用ECS,可以让你从面向对象转向数据导向设计,这意味着重用代码更容易,并且更容易让其他人掌握并做出贡献。

-EOF-


知识共享许可协议
本作品采用 知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。文章欢迎转载,复制,共享,但请希望保留我的署名权 霍兆坤;感谢你的阅读。

你可能感兴趣的:(Unity3D)