貼下地址,看了確實(shí)很有幫助
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之前,如果需要解壓,都在四個(gè)API(New WWW、CreateFromFile、LoadFromMemory、LoadFromCache等)中進(jìn)行,而不是在后面執(zhí)行
1、看一下AB制作的API說(shuō)明,AB是可以不壓縮的;
2、CreateFromFile在4.x的API,只能加載非壓縮的AB,而在5.0以后,對(duì)應(yīng)的是LoadFromFile,5.3之后可以加載任何壓縮格式的AB了
https://blog.uwa4d.com/archives/ABTheory.html
AssetBundle.Unload (unloadAllLoadedObjects : bool)卸載所有包含在bundle中的對(duì)象。
卸載釋放bundle中所有序列化數(shù)據(jù)。當(dāng)unloadAllLoaderObjects為假,bundle內(nèi)的序列化數(shù)據(jù)將被釋放,但是任何從這個(gè)bundle中實(shí)例化的物體都將完好。當(dāng)然,你不能從這個(gè)bundle中加載更多物體。當(dāng)unloadAllLoaderObjects為真,所有從該bundle中加載的物體也將被銷毀。如果場(chǎng)景中有游戲物體引用該資源,那么引用也會(huì)丟失。
這是U3D沒(méi)有處理好的一個(gè)環(huán)節(jié)。在WWW加載資源完畢后,對(duì)資源進(jìn)行instantiate后,對(duì)其資源進(jìn)行unload,這時(shí)問(wèn)題就發(fā)生 了,instantiate處理渲染需要一定的時(shí)間,雖然很短,但也是需要1,2幀的時(shí)間。此時(shí)進(jìn)行unload會(huì)對(duì)資源渲染造成影響,以至于沒(méi)有貼圖或 者等等問(wèn)題發(fā)生。
解決辦法:
自己寫個(gè)時(shí)間等待代碼,最好不要用WaitForSeconds,U3D的API,這個(gè)東西很撮,惡心死我了。。。
我估計(jì)它這個(gè)類寫的有問(wèn)題,檢查了好長(zhǎng)時(shí)間,最后還是自己寫了幾行代碼來(lái)替換這個(gè)類,解決了問(wèn)題。
等待個(gè)0.5秒到1秒之后再進(jìn)行Unload。這樣就不會(huì)出現(xiàn)instantiate渲染中就運(yùn)行unload的情況了。