unity3d 資源加載與釋放的內存管理
阿新 • • 發佈:2018-06-28
sset TE 引用 anti 不想 包括 內存管理 管理 清除
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文件自身的內存鏡像
unity3d 資源加載與釋放的內存管理