轉自:http://blog.csdn.net/chiuan/article/details/39040421#reply

1:長話短說,UI Prefab中一般會交叉引用Atlas,那么打包時候我們可以動態獲取這個prefab的依賴資源,提取Atlas進行獨立打包依賴包。實現實例化這個UI先加載依賴包,可以自己實現引用資源計數器,當清空時候Unload(true)完全釋放引用的資源依賴包。
2:打包依賴資源實現大概設計如下
push
build 依賴資源1
build 依賴資源2
build 依賴資源...
push
build ui prefab 1
pop
push
build ui prefab 2
pop
pop
注意:坑的地方
首先第一步當然先打包依賴包,如果如上,依賴包非常多。其實要清楚理解,同一個push&pop包圍中的資源是可以相互依賴的。也就是說第一個build 依賴資源1是個Atlas的prefab,那么下面的資源引用包將不會再獨立引入“UIAtla”這個腳本!
這樣和我們設計想實現“實現實例化這個UI先加載這個ui的依賴包”,會存在可能的bug,就是東西看不到,並且提示你加載的assetbundle script missing。
其實就是如頂圖,我把左邊的綠色注釋掉,右邊指示是說ui.prefab是引用了atla2里面的貼圖,但是打包依賴包卻第一個先打包了atla1,加載時候不加載atla1。導致atla2中實際上是沒有公用的atla腳本的,會報錯並且看不到UI。
解決方案,打包NGUI這類atlas時候可以把它們腳本都提取出來如UIAtlas\UIFont,針對腳本獨立打一個common包,程序默認會加載這個資源依賴包。
坑爹實例:http://pan.baidu.com/s/1k3yKe
總結:
