徹底搞清楚Cocos Creator項目結構

一鳄抒、 項目文件夾結構

初次創(chuàng)建并打開一個 Cocos Creator 項目后,開發(fā)者的項目文件夾將會包括以下結構:

1. 資源文件夾(assets)

assets 將會用來放置游戲中所有的本地資源椰弊、腳本和第三方庫文件许溅。只有在 assets 目錄下的內容才能顯示在 資源管理器 中。assets 中的每個文件在導入項目后都會生成一個相同名字的 .meta 文件秉版,用于存儲對應的資源配置和索引信息贤重。.meta 文件需要一并提交到版本控制系統(tǒng),詳見 資源管理注意事項 --- meta 文件清焕。

2. 資源庫(library)

library 是將 assets 中的資源導入后生成的游桩,在這里文件的結構和資源的格式將被處理成最終游戲發(fā)布時需要的形式牲迫。

當 library 丟失或損壞的時候,只要刪除整個 library 文件夾再打開項目借卧,就會重新生成資源庫盹憎。

3. 本地設置(local)

local 文件夾中包含該項目的本機上的配置信息,包括編輯器面板布局铐刘,窗口大小陪每,位置等信息。開發(fā)者不需要關心這里的內容镰吵。

4. 擴展插件文件夾(packages)

packages 文件夾用于放置此項目的自定義擴展插件檩禾。如需手動安裝擴展插件,可以手動創(chuàng)建此文件夾疤祭。如需卸載擴展插件盼产,在 packages 中刪除對應的文件夾即可。

5. 項目設置(settings)

settings 里保存項目相關的設置勺馆,如 構建發(fā)布 菜單里的包名戏售、場景和平臺選擇等。

6. 臨時文件夾(temp)

temp 是臨時文件夾草穆,用于緩存一些 Cocos Creator 在本地的臨時文件灌灾。這個文件夾可以在關閉 Cocos Creator 后手動刪除,開發(fā)者不需要關心這里面的內容悲柱。

7. project.json

project.json 文件和 assets 文件夾一起锋喜,作為驗證 Cocos Creator 項目合法性的標志,只有包括了這兩個內容的文件夾才能作為 Cocos Creator 項目打開豌鸡。開發(fā)者不需要關心里面的內容嘿般。

8. 構建目標(build)

在使用主菜單中的 項目 -> 構建發(fā)布... 使用默認發(fā)布路徑發(fā)布項目后,編輯器會在項目路徑下創(chuàng)建 build 目錄涯冠,并存放所有目標平臺的構建工程炉奴。點擊鏈接加入群聊【Unity/Cocos交流群】

9. 版本控制

Cocos Creator 在新建項目時,會自動生成 .gitignore 文件功偿,用于排除不應該提交到 git 倉庫的文件盆佣。如果開發(fā)者使用其它版本控制系統(tǒng),或者需要提交項目到其它地方械荷,應該注意只需要提交 assets共耍、packages、settings吨瞎、project.json痹兜,或其它手動添加的關聯文件。

二颤诀、 資源管理注意事項 --- meta 文件

理解 Creator 生成 meta 文件的作用和機理字旭,能幫助您和您的團隊解決在多人開發(fā)時常會遇到的資源沖突对湃、文件丟失、組件屬性丟失等問題遗淳。那 meta 文件是做什么用的呢拍柒?下面我們來了解一下。

1. meta 文件的作用

先來看下場景中的 meta 文件長什么樣子:

預制件的 meta 文件與場景是一樣的屈暗。

png 圖片的 meta 文件信息比較多拆讯,除了基本的 ver 和 uuid 外,還記錄了圖片的寬高养叛、偏移种呐、九宮格等數據。上面這么多信息弃甥,我們這里只關心一個:uuid爽室。

uuid : 通用唯一標識符(Universally Unique Identifier)

uuid 是 Creator 用來管理游戲資源的。它會為每個文件分配一個唯一的 id淆攻,圖集會生成多個阔墩。由此可以了解在 Creator 引擎中,識別一個文件不是簡單地通過 路徑 + 文件名 定位卜录,而是通過 uuid 來引用文件戈擒。因此可以在編輯器資源管理中眶明,隨意刪除艰毒、移動文件。

2. meta 文件更新時機

Creator 生成 meta 文件有以下幾種情況:

1搜囱、打開工程時

打開項目工程時丑瞧,Creator 會先掃描 assets 目錄,如果哪個文件還沒有 meta 文件蜀肘,此時就會生成绊汹。

2、更新資源時

更新資源也會引發(fā) meta 文件的更新:

在 資源管理器 中可以對資源進行文件名修改扮宠、改變目錄西乖、刪除文件,添加文件等操作坛增,請參考 資源管理器获雕。也可以直接從桌面或操作系統(tǒng)的文件管理器中將文件拖入到【資源管理器】中。

還有一種情況是在操作系統(tǒng)的文件管理器中對 assets 目錄中的文件進行增收捣、刪届案、改之后切換到編輯器界面,此時可以看到 資源管理器 刷新的過程罢艾。點擊鏈接加入群聊【Unity/Cocos交流群】

如果一個文件的 meta 文件不存在楣颠,上面兩種情況都會觸發(fā)引擎去生成 meta 文件尽纽。

3. meta 文件出錯的幾種情況及解決方法

下面我們分析下 meta 文件出錯的幾種可能情況。

uuid 沖突

uuid 是全局唯一的童漩,產生沖突肯定是有不同的文件的 uuid 相同了弄贿,一旦出現這個問題會導致 Cocos Creator 資源管理器目錄結構加載不完整。如下圖所示矫膨,遇到這種情況估計會讓你嚇出一身冷汗:

從提示中可以看到沖突的 uuid 字符串挎春,然后打開操作系統(tǒng)文件管理或代碼編輯器,搜索這個 uuid:

此時先關閉 Creator 編輯器豆拨,再任意刪除其中一個 meta 文件直奋,然后再打開 Creator 編輯器就可以解決。

這種方法雖然可以解決問題施禾,但在編輯器中引用到這個資源的地方將會出現資源丟失脚线,需要重新編輯或者重新配置一次。最好是通過版本管理工具還原此 meta 文件弥搞。

出現這種問題的原因一般有以下兩個:

在操作系統(tǒng)的文件管理器中移動文件時邮绿,將剪切、粘貼不小心操作成了復制攀例、粘貼船逮,同時也把 meta 文件復制過去了。導致項目中同時出現兩個相同的 meta 文件粤铭。

在多人協作時挖胃,從版本管理工具中,更新資源時碰巧遇到別人生成的 uuid 與你的電腦上某個文件生成的 uuid 一樣了梆惯,但這種情況非常非常罕見酱鸭。

總的來說,要減少 uuid 沖突發(fā)生垛吗,最好在引擎資源管理工具中進行添加凹髓、移動文件。

uuid 變化

還有一種情況是 uuid 變了怯屉,使得舊的 uuid 對應的資源無法找到蔚舀,這樣的話,你曾經編輯的界面將會出現資源锨络、圖片丟失赌躺,還可能出現組件屬性丟失。

如果找不到舊的 uuid 對應的資源足删,通過 控制臺 可以看到 Creator 給出了所在的場景文件名寿谴、節(jié)點路徑、組件失受、uuid 等非常詳細的警告信息讶泰。通過警告信息可以快速定位出錯的地方咏瑟。

這種情況又是怎么造成的呢?當有一個人將新資源添加進項目時痪署,忘記切換到編輯器界面使其生成 meta 文件码泞,同時又將這些新增的文件提交到了版本管理中(不包含 meta 文件)。然后狼犯,有另一個人去更新了他所提交的資源余寥,同時切換到了編輯器界面進行編輯,這時 Creator 會檢查到新資源沒有 meta 文件便會立即生成悯森。而當第一個人切換到編輯器的時候也會生成 meta 文件宋舷,這樣兩個人的電腦上為同一個文件,但是生成的 meta 文件中的 uuid 都不相同瓢姻。

這種情況下祝蝠,后面進行資源提交或更新的人,肯定也會遇到沖突幻碱,如果不明就理就強行解決沖突绎狭,就會產生上面所說的問題。下面的時序圖就描述了這種錯誤的工作流程:

因為第一個 A 同學忘記生成 meta 文件并提交褥傍,之后其他人都編輯過項目儡嘶,但每個人生成的 uuid 都不同,這樣就會陷入無限的資源出錯中恍风,編輯好的東西蹦狂,一提交更新又出現沖突了。

要解決這個問題注意下面幾點:

l 提交前檢查是否有新增文件邻耕,有新增文件時鸥咖,注意是否有 meta 文件燕鸽,需要一起提交兄世;

l 拉取文件時,注意是否有新增文件啊研,并且是有 meta 文件成對御滩,如果沒有的話,提醒之前提交文件的同學党远,把 meta 文件一并提交削解;

l 提交時,如果發(fā)現只有新增的 meta 文件沟娱,那這個 meta 文件肯定是自己生成的氛驮,需要注意是否使用過這個 meta 文件對應的資源(同名文件)。如果沒用過济似,那請最早提交者把 meta 文件提交了矫废。千萬不能將這個 meta 文件提交上去盏缤。

注意上面幾點基本上就可以杜絕 meta 文件 uuid 變化導致的工程出錯了。

小結

meta 文件是 Creator 用于資源管理的重要手段蓖扑,但在多人協同開發(fā)中稍有不慎就容易產生資源錯誤唉铜。要解決這個問題,不僅需要理解 meta 文件的產生機制和導致沖突的原因律杠,同時還應該規(guī)范資源提交流程潭流。

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市柜去,隨后出現的幾起案子灰嫉,更是在濱河造成了極大的恐慌,老刑警劉巖嗓奢,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件熬甫,死亡現場離奇詭異,居然都是意外死亡蔓罚,警方通過查閱死者的電腦和手機椿肩,發(fā)現死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來豺谈,“玉大人郑象,你說我怎么就攤上這事〔缒” “怎么了厂榛?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長丽惭。 經常有香客問我击奶,道長,這世上最難降的妖魔是什么责掏? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任柜砾,我火速辦了婚禮,結果婚禮上换衬,老公的妹妹穿的比我還像新娘痰驱。我一直安慰自己,他們只是感情好瞳浦,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布担映。 她就那樣靜靜地躺著,像睡著了一般叫潦。 火紅的嫁衣襯著肌膚如雪蝇完。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天,我揣著相機與錄音短蜕,去河邊找鬼泛源。 笑死,一個胖子當著我的面吹牛忿危,可吹牛的內容都是我干的达箍。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼铺厨,長吁一口氣:“原來是場噩夢啊……” “哼缎玫!你這毒婦竟也來了?” 一聲冷哼從身側響起解滓,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤赃磨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后洼裤,有當地人在樹林里發(fā)現了一具尸體邻辉,經...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年腮鞍,在試婚紗的時候發(fā)現自己被綠了值骇。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡移国,死狀恐怖吱瘩,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情迹缀,我是刑警寧澤使碾,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站祝懂,受9級特大地震影響票摇,放射性物質發(fā)生泄漏。R本人自食惡果不足惜砚蓬,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一矢门、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧怜械,春花似錦颅和、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蹭越。三九已至障本,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背驾霜。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工案训, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人粪糙。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓强霎,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蓉冈。 傳聞我的和親對象是個殘疾皇子城舞,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內容