unity3d 資源加載與釋放的內存管理


unity3d 在動態創建實例的過程中有三個步驟

AssetBundle.LoadFromFile 創建的是AssetBundle文件內存鏡像 bundle

bundle.LoadAsset 創建的是asset內存鏡像 asset

Instantiate(asset) 創建出實例對象 gameobject

 

所以就對應這三個生成物體的生成與釋放

gameobject

  Instantiate(asset) 生成 gameobject

  Destroy(gameobject) 銷毀 gameobject

asset

  bundle.LoadAsset 創建asset內存鏡像

  Reources.UnloadAsset(asset) 釋放asset內存鏡像

  Resources.UnloadUnusedAssets() 釋放沒有引用的asset

  (策略,不想釋放的asset,保持asset的引用,調用UnloadUnusedAssets來統一釋放想釋放的asset)

bundle

  AssetBundle.LoadFromFile 創建bundle文件內存鏡像

  bundle.Unload(false) 釋放bundle文件內存鏡像

  (在創建完成所有asset之后,調用bundle.Unload(false))

 

場景切換會銷毀所有gameobject,清除asset內存鏡像的引用,但是不包括AssetBundle文件自身的內存鏡像

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM