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文件自身的內存鏡像