assetbundle是unity一種特有的資源格式,其他的專案我不了解,從入行到現在經歷的所有的unity遊戲專案,所需的資源都是打成bundle的形式供專案使用。
assetbundle的優點總結為以下幾點:
1.資源壓縮,可以減小安裝包的大小。安裝包大小其實對於一些中小cp來說是必須要控制的,或者說是越小越好,因為遊戲上線大推之前,某些xx渠道會給你設很多障礙,比如要接googleplay,包體必須要控制到150m;安裝包越大,推行費用越高等等,這裡就不細說了。
2.支援各種資源打包,assetbundles可以包含unity可以識別的任何型別的資源,包括場景,模型,材質,紋理,音效以及自定義的二進位制資料。唯一的例外是,指令碼資源是不被允許的,但是有一種特殊情況,當prefab上掛了某一指令碼被打成bundle,在你的正在使用的專案中有同名指令碼,該指令碼會被執行,如果沒有,該指令碼元件失效。
3.支援非同步載入,可以很好地緩解資源載入卡頓問題
以下主要介紹以下assetbundle的用法。
話不多說。
一.打包
專案裡打包主角模型 ,其他檔案型別例如**,特效,貼圖等打包方式基本一致,只是在判斷原始資源型別處不同
caching.cleancache();//清快取
// 保證目標資料夾存在且為空
if (system.io.directory.exists(targetpath))
system.io.directory.createdirectory(targetpath);
string playerdir = system.io.directory.getfilesystementries(playerpath);
foreach (string p in playerdir)
else
debug.logerror("create roleres asset error!!! " + filename);
}else
}}
// 不同平台下streamingassets的路徑
public static readonly string rawpath =
#if unity_android && !unity_editor
#elif unity_ios && !unity_editor
#elif unity_standalone_win
#else
#endif
void loadfunction().assetbundle", rawpath, path));
yield return www;
if (!string.isnullorempty(www.error))
, error: ", tblid, www.error), logtype.fatal);
}else
if(null != ab)
}
對於assetbundle的用法先介紹到這,後續補充。
三. 完
Unity打包載入場景(Assetbundle )
打包scene 我們可以把整個場景進行打包,因為移動平台不能更新指令碼,所以這個功能就會有所限制,我的建議是烘培場景,然後把多個場景可復用的物件移除,場景中只保留獨一無二的遊戲物件,然後再打包場景,執行遊戲時載入場景後,再動態的將之前移除的物件重新新增進來。menuitem custom edito...
Unity打包以及載入AssetBundle思路
1.通常把專案中用到的所有shader打到乙個ab包裡,在資源呼叫時首先載入所有shader,因為專案中很多資源引用了shader 2.把一些共同引用的資源打到同乙個包裡,比如uia用了materialc,uib也用了materialc,uia,uib還用到了texc,那麼我們把materialc,...
unity之靶心製作
首先要知道兩個概念,乙個螢幕的座標是左上角為 0,0 而滑鼠位置的座標左下角為 0,0 靶心貼圖 public texture texture void ongui 計算準心貼圖的座標 rect rect new rect input.mouseposition.x texture.width 1 ...