本文轉(zhuǎn)自:Unity項目如何架構(gòu)(一)目錄組織
首先我要聲明的一點是脫離了產(chǎn)品需求而空談架構(gòu)就是在耍流氓。我下面的架構(gòu)是基于我當前在做的產(chǎn)品需求定的,所以不一定完全適合你。
首先我們先來看一下項目的目錄結(jié)構(gòu)。
上圖中的文件夾就是項目的主要結(jié)構(gòu),我把所有的在 Assets/ 目錄下的自己創(chuàng)建的文件夾都約定使用下劃線開始的名字命名。
_3rd/ 文件夾下存放的是所有的第三方的插件或者類庫。
_Framework/ 主要存放獨立的基礎組件,這部分的代碼和具體的業(yè)務需求無關,可以在多個不同的項目之間進行復用。當然,也可以打包成 unitypackage 方便使用。
_resources/ 下面存放所有的資源文件,在 _resources/目錄下面還會有更詳細的分類,下面詳細介紹。
_Scenes/ 存放所有的場景文件,為了避免多人協(xié)作編輯同一個場景導致的沖突,所以最好將可以將頁面按照需求獨立成不同的場景,不同的人編輯不同的場景。
_Scripts/ 存放的是所有的和項目需求相關的代碼腳本,下面詳細介紹。
其他的兩個目錄沒有用下劃線作為名字的開始,所以它們是Unity 工程的特殊目錄,這塊我不詳細介紹,大家可以自行學習相關的知識。
上面這種項目目錄的組織方式可以讓我能夠快速清晰的定位不同的資源。下面我們再來近距離的看看項目的目錄組織結(jié)構(gòu)。
在 _3rd/ 目錄下面是這樣的:
在 _Framework/ 下面是這樣的:

Screen-Shot-2016-01-01-at-11-10-50-PM
這部分都是一些通用性質(zhì)的組件,包括一些例如 BaseBehaviour 之類的基類和一些 Manager 性質(zhì)的組件如負責事件傳遞的 MessageCenter 、管理頁面打開和關閉的UIManager 等。
在 _Resources/ 目錄下面是按照資源的種類進行分組的,在每一個類別下面再根據(jù)不同的頁面或者需求點進行細分。如下所示:

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 架構(gòu)模式分拆。MVC 架構(gòu)這個是很流行的架構(gòu),方便進行代碼的責任分拆。因為 Unity 下面組件開發(fā)非常方便,所以我又特地的在 MVC 模式的基礎上添加了 Component 模式,進一步的增加靈活性和獨立性。
Lua/ 目錄存放的是所有的 .lua 文件。因為熱更新的需求,所以我使用了 ulua 插件。這個 Lua/ 目錄下是具體的和項目相關的并且是使用 lua 腳本實現(xiàn)的代碼。
我們再來看一下項目目錄組織的完整的圖吧。

Screen-Shot-2016-01-01-at-11-35-10-PM

