cocos 資源工做流程

前面的話

  本文將詳細介紹 cocos 中的資源工做流程算法

 

概述

【同步性】安全

  資源管理器中的資源和操做系統的文件管理器中看到的項目資源文件夾是同步的編輯器

  在資源管理器中對資源的移動、重命名和刪除,都會直接在用戶的文件系統中對資源文件進行同步修改。一樣的,在文件系統中(如 Windows 上的 Explorer 或 Mac 上的 Finder)對添加或刪除資源,再次打開或激活 Cocos Creator 程序後,也會對資源管理器中的資源進行更新工具

【meda文件】字體

  全部 assets 路徑下的資源都會在導入時生成一份資源配置文件(.meta),這份配置文件提供了該資源在項目中的惟一標識(uuid)以及其餘的一些配置信息(如圖集中的小圖引用,貼圖資源的裁剪數據等),很是重要優化

  在編輯器中管理資源時,meta 文件是不可見的,對資源的任意刪除、更名、移動操做,都會由編輯器自動同步相應的 meta 文件,確保 uuid 的引用不會丟失和錯亂ui

  注意在編輯器外部的文件系統中(Explorer,Finder)對資源文件進行刪除、更名、移動時必須同步處理相應的 meta 文件。資源文件和其對應的 meta 文件應該保持在同一個目錄下,並且文件名相同操作系統

  若是在編輯器外部的文件系統中(Explorer,Finder等)進行了資源文件的移動或重命名,而沒有同步移動或重命名 meta 文件時,會致使編輯器將更名或移動的資源當作新的資源導入,可能會出現場景和組件中對該資源(包括腳本)的引用丟失code

  在編輯器發現有未同步的資源配置文件時,會彈窗警告用戶,並列出全部不匹配的 meta 文件。這時沒法正確匹配的資源配置文件會從項目資源路徑(asset)中移除,並自動備份到 temp 路徑下對象

  若是但願恢復這些資源的引用,將備份的 meta 文件複製到已經移動過的資源文件同一路徑下,並保證資源文件和 meta 文件的文件名相同

  注意編輯器在處理資源更名和移動時會生成新的 meta 文件,這些新生成的 meta 文件能夠在恢復備份的 meta 後安全刪除

 

圖像資源

  圖像資源常常被稱做貼圖、圖片,是遊戲中絕大部分圖像渲染的數據源。圖像資源通常由圖像處理軟件(如 PS )製做而成並輸出成 Cocos Creator 可使用的文件格式,目前包括 JPG 和 PNG 兩種

  圖像資源在資源管理器中以自身圖片的縮略圖做爲圖標。在資源管理器中選中圖像資源後,屬性檢查器下方會顯示該圖片的縮略圖

【SpriteFrame】

  在資源管理器中,圖像資源的左邊會顯示一個和文件夾相似的三角圖標,點擊就能夠展開看到它的子資源(sub asset),每一個圖像資源導入後編輯器會自動在它下面建立同名的 SpriteFrame 資源

  SpriteFrame 是核心渲染組件 Sprite 所使用的資源,設置或替換 Sprite 組件中的 spriteFrame 屬性,就能夠切換顯示的圖像

  爲何會有 SpriteFrame 這種資源?這樣的設置是由於除了每一個文件產生一個 SpriteFrame 的圖像資源(Texture)以外,還有包含多個 SpriteFrame 的圖集資源(Atlas)類型

  直接將 SpriteFrame 或圖像資源從資源管理器中拖拽到層級管理器或場景編輯器中,就能夠直接用所選的圖像在場景中建立 Sprite 節點。以後能夠拖拽其餘的 SpriteFrame 或圖像資源到該 Sprite 組件的 Sprite Frame 屬性欄中,來切換該 Sprite 顯示的圖像

  導入圖像資源後生成的 SpriteFrame 會進行自動剪裁,去除原始圖片周圍的透明像素區域。這樣在使用 SpriteFrame 渲染 Sprite 時,將會得到有效圖像更精確的大小

 

預製資源

  在場景中編輯好節點後,直接將節點從層級管理器拖到資源管理器,便可建立出一個預製(prefab)

  在場景中修改了預製實例後,在屬性檢查器中直接點擊保存,便可保存對應的預製資源

  在場景中修改了預製實例後,在屬性檢查器中直接點擊回退,便可將預製對象還原爲資源中的狀態

  每一個場景中的預製實例均可以選擇要自動同步和仍是手動同步。設爲手動同步時,當預製對應的原始資源被修改後,場景中的預製實例不會同步刷新,只有在用戶手動還原預製時纔會刷新;設爲自動同步時,該預製實例會自動和原始資源保持同步

 

圖集資源

  圖集(Atlas)也稱做 Sprite Sheet,是遊戲開發中常見的一種美術資源。圖集是經過專門的工具將多張圖片合併成一張大圖,並經過 plist 等格式的文件索引的資源。可供 Cocos Creator 使用的圖集資源由 plist 和 png 文件組成

  在遊戲中使用多張圖片合成的圖集做爲美術資源,有如下優點:

  一、合成圖集時會去除每張圖片周圍的空白區域,加上能夠在總體上實施各類優化算法,合成圖集後能夠大大減小遊戲包體和內存佔用

  二、多個 Sprite 若是渲染的是來自同一張圖集的圖片時,這些 Sprite 可使用同一個渲染批次來處理,大大減小 CPU 的運算時間,提升運行效率

  要生成圖集,首先應該準備好一組原始圖片,接下來可使用專門的軟件(texturepacker 或者 Zwoptex)生成圖集,使用這些軟件生成圖集時選擇 cocos2d-x 格式的 plist 文件。最終獲得的圖集文件是同名的 plist 和 png,將 plist 和 png 文件同時拖拽到資源管理器中,就能夠生成能夠在編輯器和腳本中使用的圖集資源了

【自動圖集】

  自動圖集資源是 Cocos Creator 自帶的合圖功能,能夠將指定的一系列碎圖打包成一張大圖,在資源管理器中右鍵,能夠在以下菜單中找到 新建 -> 自動圖集配置 的子菜單,點擊菜單將會新建一個相似 AutoAtlas.pac 的資源,自動圖集資源將會以當前文件夾下的全部 SpriteFrame 做爲碎圖資源。 若是碎圖資源 SpriteFrame 有進行配置過,在打包後從新生成的 SpriteFrame 將會保留這些配置

 

藝術數字資源

  藝術數字資源是一種用戶自定義的資源,它能夠用來配置藝術數字字體的屬性。在資源管理器中右鍵,能夠在以下菜單中找到 新建 -> 藝術數字配置 的子菜單,點擊菜單將會新建一個相似 LabelAtlas.labelatlas 的資源。藝術數字資源在使用以前須要進行一些配置,好比關聯渲染的圖片資源,設置每個字符的寬高和起始字符信息

  在資源管理器中選中一個藝術數字資源後,屬性檢查器面板將會顯示藝術數字資源的全部可配置項,配置完成後須要點擊屬性檢查器右上角的綠色的打勾按鈕來保存設置

  使用藝術數字資源很是簡單,只須要新建一個 Label 組件,而後把新建好的藝術數字資源拖到 Label 組件的 Font 屬性便可

 

字體資源

  使用 Cocos Creator 製做的遊戲中可使用三類字體資源:系統字體,動態字體和位圖字體

  系統字體是經過調用遊戲運行平臺自帶的系統字體來渲染文字,不須要用戶在項目中添加任何相關資源。要使用系統字體,須要使用Label組件中的 Use System Font 屬性

  目前 Cocos Creator 支持 TTF 格式的動態字體。只要將擴展名爲 TTF 的字體文件拖拽到資源管理器中,便可完成字體資源的導入

  位圖字體由 fnt 格式的字體文件和一張 png 圖片組成,fnt 文件提供了對每個字符小圖的索引。這種格式的字體能夠由專門的軟件生成

  在導入位圖字體時,須要將 fnt 文件和 png 文件同時拖拽到資源管理器中

  字體資源須要經過 Label 組件來渲染,在層級管理器中點擊左上角的建立節點按鈕,並選擇建立渲染節點/Label(文字),就會在場景中建立出一個帶有 Label 組件的節點。也能夠經過主菜單的節點/建立渲染節點/Label(文字)來完成建立,效果同樣

  字體組件默認使用系統字體做爲關聯的資源,若是想要使用導入到項目中的 TTF 或位圖字體,能夠將字體資源拖拽到建立的 Label 組件中的 File 屬性欄中

  能夠根據項目須要,自由的切換同一個 Label 組件的 File 屬性,來使用 TTF 或位圖字體。切換字體文件時,Label 組件的其餘屬性不受影響

  若是要恢復使用系統字體,能夠點擊 Use System Font 的屬性複選框,來清除 File 屬性中指定的字體文件

相關文章
相關標籤/搜索