資源管理系統

一、資源打包
  • BuildPipeline.BuildAssetBundle資源打包參數:Determine(Object保持ID不變,用於增量發佈)、ColloctDependencies(收集依賴)、Complete完全打包(該資源以完整的形式打包)
  • 場景打包:先打包的依賴的所有資源,然後打包場景,用BuildPipeline.BuildStreamed...選項爲BuildAddtionalStreamdScene,表示打包成一個流化的壓縮的可用www加載的AssetBundle
  • 資源MD值生成:使用C#MD5根據資源全局路徑 生成一個哈希值byte[],串聯所有byte的tostring("x2")
  • 資源也可以通過crc來唯一標誌,crc較md5耗內存和空間要少
  • 生成資源依賴樹之點名法:AssetDatabase可以返回每個資源所有依賴,通過該方法我們可以對對關聯到的所有資源調用該方法,並對返回列表的每個路徑點名,點名次數多的就是被嵌套依賴的資源。用依賴樹來表示,點名最大的是葉子結點資源,最少的是根資源。
  • 生成依賴樹之減法:.資源的直接依賴 = 資源的全部依賴 - 資源的所有的依賴的全部依賴
  • 自定義資源格式:資源格式的分類如:
    光照貼圖 紋理
    音頻 視頻 動畫 材質 動畫控制器 fbx 預設 場景。
    每一資源我們都通過其後綴來區分是什麼格式,一種格式的資源可能會對應到多種後綴。比如紋理:.jpg、.png
  • 依賴關係最終會生成一張依賴圖,途中每個節點代表一個資源和他的依賴信息。其結構包含有:
    • path:路徑
    • allDependencies:所有依賴的路徑
    • dependencies:直接依賴的路徑
    • formatDependencies:所有的依賴按格式分類
  • AB包加載完成後把它所有的資源都Load出來就可以釋放掉,包括主資源和所有子資源。當然這裏是指該資源只會被別的資源依賴一次,比如圖集的紋理。其他資源如Material、特效的紋理因爲混用比較常見,依賴關係比較複雜不能馬上卸載,AB包必須和資源共存亡,否則後續依賴他的資源會丟失依賴。除非全局公用的資源,否則不要抽出來當成公用依賴打,會造成依賴關係紊亂。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章