全面理解Unity加載和內(nèi)存管理機制

貼下地址,看了確實很有幫助
http://www.ceeger.com/forum/read.php?tid=4394
http://www.ceeger.com/forum/read.php?tid=4466
http://blog.csdn.net/lodypig/article/details/51879702
在5.3之前,如果需要解壓,都在四個API(New WWW、CreateFromFile、LoadFromMemory、LoadFromCache等)中進行,而不是在后面執(zhí)行
1、看一下AB制作的API說明,AB是可以不壓縮的;
2、CreateFromFile在4.x的API,只能加載非壓縮的AB,而在5.0以后,對應(yīng)的是LoadFromFile,5.3之后可以加載任何壓縮格式的AB了

https://blog.uwa4d.com/archives/ABTheory.html

AssetBundle.Unload (unloadAllLoadedObjects : bool)卸載所有包含在bundle中的對象。
卸載釋放bundle中所有序列化數(shù)據(jù)。當unloadAllLoaderObjects為假,bundle內(nèi)的序列化數(shù)據(jù)將被釋放,但是任何從這個bundle中實例化的物體都將完好。當然,你不能從這個bundle中加載更多物體。當unloadAllLoaderObjects為真,所有從該bundle中加載的物體也將被銷毀。如果場景中有游戲物體引用該資源,那么引用也會丟失。
這是U3D沒有處理好的一個環(huán)節(jié)。在WWW加載資源完畢后,對資源進行instantiate后,對其資源進行unload,這時問題就發(fā)生 了,instantiate處理渲染需要一定的時間,雖然很短,但也是需要1,2幀的時間。此時進行unload會對資源渲染造成影響,以至于沒有貼圖或 者等等問題發(fā)生。

解決辦法:
自己寫個時間等待代碼,最好不要用WaitForSeconds,U3D的API,這個東西很撮,惡心死我了。。。
我估計它這個類寫的有問題,檢查了好長時間,最后還是自己寫了幾行代碼來替換這個類,解決了問題。
等待個0.5秒到1秒之后再進行Unload。這樣就不會出現(xiàn)instantiate渲染中就運行unload的情況了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、什么是AssetBundle AssetBundle 是Unity pro提供的一種用來存儲資源的文件格式,它...
    好怕怕閱讀 7,851評論 1 8
  • Babybus-u3d技術(shù)交流-Unity加載和內(nèi)存管理 [unity里有兩種動態(tài)加載機制:一是Resources...
    Babybus_Unity閱讀 1,555評論 3 24
  • Unity3D 里有兩種動態(tài)加載機制:一個是Resources.Load,另外一個通過AssetBundle,其實...
    IongX閱讀 1,784評論 0 5
  • 原文地址 http://www.fx114.net/qa-75-172454.aspx 使用Profiler工具...
    IongX閱讀 6,231評論 1 11
  • 我和老媽說起今天知道一個云南白族的名菜叫“蝴蝶撲泉”,而后說起了這個美妙名字的來歷,做法,說聽著名字就想吃。 我媽...
    孫艶閱讀 1,710評論 0 3

友情鏈接更多精彩內(nèi)容