五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Unity框架設計:如何組織項目目錄結構

2022-09-29 14:44 作者:博毅創(chuàng)為  | 我要投稿

Unity項目如何組織目錄結構,有幾個習慣與你相同

組織好項目的目錄結構,是維護項目的很重要的一個點,我們學習別人源碼,了解別人的設計思路都是從目錄結構開始,一個清晰的目錄結構,對項目開發(fā)維護,項目管理來說非常的重要,目錄維護的好,大家在一起工作很愉快,目錄維護的不好,有可能會把項目搞的亂七八糟。今天我們一起來看看Unity架構師是如何維護自己的目錄結構的,再看看有幾個是和你相同的。

?

1: Unity項目的幾個基本原則

原則(1): 不在場景里面除啟動節(jié)點意外的任何節(jié)點。

Unity 提供方便的場景編輯器,好像我們拖拉帶拽,直接往場景里面搭建游戲場景,然后來做場景切換,這個我們在開放項目的時候是不提倡的。這樣做有兩個缺點:

A: 不方便多人同時編輯場景后的代碼提交與合并, 如果有沖突更麻煩。

B: 不方便打空包,節(jié)點都在場景,打包時,節(jié)點依賴的資源都會被打包進去。

C: 方便維護,維護復雜的場景,誰維護過誰知道。

?

原則(2): 不要在節(jié)點或預制體上直接掛與邏輯相關的代碼組件。

這個很好理解,如果我們直接在節(jié)點or預制體上掛代碼組件,代碼極難維護,如果我們要搜索哪些代碼在哪些地方調用,根本就無法通過搜索查到,如果一個一個節(jié)點,一個一個預制體的點開找,這樣維護起來非常麻煩, 也不方便資源更新與代碼熱更。

?

原則(3) 不要直接拖動節(jié)點,組件, 資源到代碼邏輯組件的屬性編輯器上。比如直接給Button組件掛響應函數(shù)等,原則2可以保證原則(3)不會出現(xiàn),但是我還是要強調一下。理由是不方便維護代碼,和多人協(xié)作開發(fā)與提交。

?

原則(4) 運行的時候只有一個場景,所有的內容代碼控制。

場景里面不允許放內容,那么做場景切換也就沒有意義了,所以我們只有一個運行時的場景。所有的內容,我們都要通過代碼來生成出來,這樣,搜索代碼,維護代碼就能看到整個完整的游戲邏輯。其他的場景可以用來編輯地圖,編輯角色等。編輯好后生成一個一個的資源預制體。所以我們項目里面一個運行時的空場景,以及其他資源編輯器關卡編輯的場景,而這些是編輯資源地圖而用,不會被打包進去。

?

原則(5) 使用純AssetsBundle來管理整個資源的加載與卸載, 不使用Resouces機制。

為什么不使用Resources, 機制來加載與卸載資源呢?Resources機制不方便資源更新,不方便打空包, Resources下的所有資源以及相關依賴都會被打包進去。 Resources也不方便資源更新, 所以干脆使用純AssetsBundle來做資源的加載與卸載,方便打空包,同時也方便資源更新。如果不打空包,只要把打包出來的ab包放到StreammingAssets目錄下,這個目錄下的所有的資源都會打包進去,到時候到這里來讀取ab包就可以了。

?

原則(6) 第三方的資源與插件的目錄結構要統(tǒng)一放到一個文件夾下。

我們完成一個Unity項目會經(jīng)常需要用到Unity插件,而Unity插件在開發(fā)的時候,從自己的角度出發(fā),所以目錄結構可能和我們的項目目錄結構理念維護不一致,所以我們要整理第三方插件, 還有可能包含代碼。

?

2: Unity項目的一級目錄結構

1級目錄結構如下:

AssetsPackages:所有的游戲資源,都存放到這個目錄下。

Editor: 框架與項目編輯器擴展代碼。

Scenes: 所有的游戲場景,包括運行場景,地圖編輯場景,角色編輯場景,特效編輯場景。

Scripts: 所有游戲的代碼,含框架與游戲邏輯代碼。

3rd: 第三方插件存放的位置。

SteammingAssets: 用來存放打包以后的ab資源包,這樣ab包能打入安裝包。

?

3: 重要一級目錄結構子目錄結構

1: AssetsPackage目錄如何分類?

AssetsPackage里面存放所有的資源,資源如何分類有決定了打ab包的時候的資源管理等,所以我們盡可能的要把資源按照功能來分類放好,那么我這邊會把AssetsPackage分成一下主要的子目錄。

AssetsPackage/GUI: 存放每個UI界面的GUI的圖片等相關。

AssetsPackage/Sounds: 存放游戲的音樂與音效

AssetsPackage/Maps: 存放游戲的地圖場景,可以在里面再繼續(xù)分關卡。

AssetsPackage/Charactors: 存放角色動畫等相關資源。

AssetsPackage/Effects: 存放粒子特效等相關資源

AssetsPackage/Excels: 存放游戲中配置文件的表格數(shù)據(jù)。

2: Scripts 目錄如何分類?

Scripts是代碼的主體維護的文件夾,這個文件夾的分類其實非常的重要,我這邊是這樣分類的。

Scripts/3rd : 用來存放純粹的第三方的C#代碼,不是插件,比如protobuf for C#等

Scripts/Game: 用來存放游戲邏輯代碼

Scripts/Utils: 用來存放游戲工具類的代碼, 比如單例,MD5, SHA1

Scripts/Managers: 用來存放主要的管理模塊代碼(資源管理,網(wǎng)絡模塊,聲音模塊等)

Scripts/AssetsBundle: 與Ab資源包管理更新相關的代碼。

……

3: Editor 目錄如何分類?

Editor是編輯器擴展代碼所放的目錄,我這邊是按照功能和擴展的模塊來分類放好對應的編輯器擴展代碼,如下:

Editor/AssetBundle: 編輯器擴展ab包自動化打包管理,版本管理,等編輯器相關代碼;

Editor/Common: 一些編輯器擴展的公用代碼。

Editor/ExcelBuild: 表格處理工具代碼;

Editor/PackageBuild: 打包時候的工具代碼

你有哪些編輯器擴展的工具和功能分類放到Editor目錄下。

3: AssetBundles輸出目錄結構

整個項目,都采用AssetsBundle資源管理模式,所以打出的AssetsBundle包也會有一個對應的目錄結構,這個目錄結構,不放在Unity項目的Assets文件夾中,而是放到和Assets文件夾同級的位置,如圖:

每個平臺,每個渠道的ab包是不一樣的,所以,在AssetsBundle里面我們要分渠道分平臺來打包。所以在AssetBundles路徑下,先分了平臺,再分渠道。

AssetBundles/Android/xxxx平臺

AssetBundles/iOS/xxxx平臺

?

當然這些最好制作AssetBundles打包工具的時候都能自動完成。

?

今天的Unity框架目錄結構分類與管理,就給大家介紹到這里,主要是介紹管理項目目錄結構的一些理念,與你的項目有多少是吻合的呢?

附:視頻教學

https://www.bycwedu.com/promotion_channels/2146264125


Unity框架設計:如何組織項目目錄結構的評論 (共 條)

分享到微博請遵守國家法律
会昌县| 怀仁县| 竹溪县| 叙永县| 鄢陵县| 罗山县| 濮阳县| 荥阳市| 武胜县| 临湘市| 宣城市| 南安市| 抚顺市| 丹凤县| 纳雍县| 新巴尔虎左旗| 晋江市| 沙洋县| 峡江县| 上杭县| 博白县| 祥云县| 景宁| 大兴区| 江口县| 含山县| 油尖旺区| 资兴市| 呼伦贝尔市| 西吉县| 新余市| 页游| 尤溪县| 敦煌市| 汉阴县| 桦南县| 安顺市| 平南县| 永寿县| 蕉岭县| 琼中|