(转)Unity项目的目录组织

本文转自:Unity项目如何架构(一)目录组织
首先我要声明的一点是脱离了产品需求而空谈架构就是在耍流氓。我下面的架构是基于我当前在做的产品需求定的,所以不一定完全适合你。
首先我们先来看一下项目的目录结构。

(转)Unity项目的目录组织
文章图片
Screen-Shot-2016-01-01-at-10-45-18-PM
上图中的文件夹就是项目的主要结构,我把所有的在 Assets/ 目录下的自己创建的文件夹都约定使用下划线开始的名字命名。
_3rd/ 文件夹下存放的是所有的第三方的插件或者类库。
_Framework/ 主要存放独立的基础组件,这部分的代码和具体的业务需求无关,可以在多个不同的项目之间进行复用。当然,也可以打包成 unitypackage 方便使用。
_resources/ 下面存放所有的资源文件,在 _resources/目录下面还会有更详细的分类,下面详细介绍。
_Scenes/ 存放所有的场景文件,为了避免多人协作编辑同一个场景导致的冲突,所以最好将可以将页面按照需求独立成不同的场景,不同的人编辑不同的场景。
_Scripts/ 存放的是所有的和项目需求相关的代码脚本,下面详细介绍。
其他的两个目录没有用下划线作为名字的开始,所以它们是Unity 工程的特殊目录,这块我不详细介绍,大家可以自行学习相关的知识。
上面这种项目目录的组织方式可以让我能够快速清晰的定位不同的资源。下面我们再来近距离的看看项目的目录组织结构。
在 _3rd/ 目录下面是这样的:

(转)Unity项目的目录组织
文章图片
Screen-Shot-2016-01-01-at-11-09-05-PM
在 _Framework/ 下面是这样的:
(转)Unity项目的目录组织
文章图片
Screen-Shot-2016-01-01-at-11-10-50-PM
这部分都是一些通用性质的组件,包括一些例如 BaseBehaviour 之类的基类和一些 Manager 性质的组件如负责事件传递的 MessageCenter 、管理页面打开和关闭的UIManager 等。
在 _Resources/ 目录下面是按照资源的种类进行分组的,在每一个类别下面再根据不同的页面或者需求点进行细分。如下所示:
(转)Unity项目的目录组织
文章图片
Screen-Shot-2016-01-01-at-11-15-20-PM
在 _Scripts/ 目录下面存放的是项目需求相关的代码。
(转)Unity项目的目录组织
文章图片
Screen-Shot-2016-01-01-at-11-21-04-PM
如上所示,Editor/ 目录下面是一些编辑器扩展,主要是一些打包 AssetBundle 之类的辅助工具。
Game/ 目录又按照 MVC + Component 架构模式分拆。MVC 架构这个是很流行的架构,方便进行代码的责任分拆。因为 Unity 下面组件开发非常方便,所以我又特地的在 MVC 模式的基础上添加了 Component 模式,进一步的增加灵活性和独立性。
Lua/ 目录存放的是所有的 .lua 文件。因为热更新的需求,所以我使用了 ulua 插件。这个 Lua/ 目录下是具体的和项目相关的并且是使用 lua 脚本实现的代码。
我们再来看一下项目目录组织的完整的图吧。
(转)Unity项目的目录组织
文章图片
Screen-Shot-2016-01-01-at-11-35-10-PM 【(转)Unity项目的目录组织】

    推荐阅读