(转)Unity项目的目录组织

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


上图中的文件夹就是项目的主要结构,我把所有的在 Assets/ 目录下的自己创建的文件夹都约定使用下划线开始的名字命名。
_3rd/ 文件夹下存放的是所有的第三方的插件或者类库。

_Framework/ 主要存放独立的基础组件,这部分的代码和具体的业务需求无关,可以在多个不同的项目之间进行复用。当然,也可以打包成 unitypackage 方便使用。

_resources/ 下面存放所有的资源文件,在 _resources/目录下面还会有更详细的分类,下面详细介绍。

_Scenes/ 存放所有的场景文件,为了避免多人协作编辑同一个场景导致的冲突,所以最好将可以将页面按照需求独立成不同的场景,不同的人编辑不同的场景。

_Scripts/ 存放的是所有的和项目需求相关的代码脚本,下面详细介绍。

其他的两个目录没有用下划线作为名字的开始,所以它们是Unity 工程的特殊目录,这块我不详细介绍,大家可以自行学习相关的知识。

上面这种项目目录的组织方式可以让我能够快速清晰的定位不同的资源。下面我们再来近距离的看看项目的目录组织结构。
在 _3rd/ 目录下面是这样的:


在 _Framework/ 下面是这样的:
Screen-Shot-2016-01-01-at-11-10-50-PM

这部分都是一些通用性质的组件,包括一些例如 BaseBehaviour 之类的基类和一些 Manager 性质的组件如负责事件传递的 MessageCenter 、管理页面打开和关闭的UIManager 等。
在 _Resources/ 目录下面是按照资源的种类进行分组的,在每一个类别下面再根据不同的页面或者需求点进行细分。如下所示:
Screen-Shot-2016-01-01-at-11-15-20-PM

在 _Scripts/ 目录下面存放的是项目需求相关的代码。
Screen-Shot-2016-01-01-at-11-21-04-PM

如上所示,Editor/ 目录下面是一些编辑器扩展,主要是一些打包 AssetBundle 之类的辅助工具。
Game/ 目录又按照 MVC + Component 架构模式分拆。MVC 架构这个是很流行的架构,方便进行代码的责任分拆。因为 Unity 下面组件开发非常方便,所以我又特地的在 MVC 模式的基础上添加了 Component 模式,进一步的增加灵活性和独立性。
Lua/ 目录存放的是所有的 .lua 文件。因为热更新的需求,所以我使用了 ulua 插件。这个 Lua/ 目录下是具体的和项目相关的并且是使用 lua 脚本实现的代码。
我们再来看一下项目目录组织的完整的图吧。
Screen-Shot-2016-01-01-at-11-35-10-PM

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,631评论 25 709
  • 依稀还记着那年槐树下的你 那个扎着马尾的你 那个充满甜美微笑的你 那个简简单单的你 有一天,起风了 空气中弥漫着丝...
    流岚若汐Augus阅读 1,813评论 0 1
  • 昨晚朋友聚會,十個人來了八位。十個人,十二年前是同一個單位的,陸續調走了三個,剩下的七個雖說還在同一單位,但也少有...
    如心1976阅读 903评论 1 0
  • -01- 一位网友给我私信说,她跟交往4年的男友分手了,对方将俩人的所有照片、微信、QQ、电话等联系方式全部删了。...
    吟东阅读 4,629评论 8 8
  • 音乐虽然属于高雅的艺术,但也同样适合我们这些外行欣赏。最近一段时间,常常在闲暇时听一听音乐。民族音乐我一直...
    丁怀超阅读 2,087评论 0 4