AssetBundle加载功能
(1)导入制作好的model模型,制作成prefab,小提示:需要将Modle的Rig属性设置为none,因为后面进行AB包加载的时候发现,带有动画属性的包,没有办法加载出来。
(2)导入官方免费打包助手 Asset Bundle Manager,没有此插件的并且不会下载的,评论区留邮箱,我会抽空发到您邮箱。
(3)如下图所示,点击build完成打包,相关的属性设置可以根据自己的需求来修改,平台一定要选WebGL.
(4)编写加载模块代码
///
/// 下载地址
///
public string strABUrl = @"http://127.0.0.1:7099/WebGL/";
void Start()
{
//bundleNameList就是预设的名称列表,可以通过配置文件读取,也可以手动实例化,看你自己了
for (int i = 0; i < bundleNameList.Count; i++)
{
StartCoroutine(DownloadBundleCoroutine(DoShowObj,
strABUrl + bundleNameList[i] + ".unity3d", bundleNameList[i]));
}
}
public IEnumerator DownloadBundleCoroutine(Action modelFound, string url, string modelName)
{
AssetBundle bundle = null;
UnityWebRequest request = UnityWebRequestAssetBundle.GetAssetBundle(url);
request.SendWebRequest();
while (!request.isDone)
{
Invoke(modelName, request.downloadProgress);
yield return null;
}
bundle = DownloadHandlerAssetBundle.GetContent(request);
GameObject model = null;
if (bundle != null)
{
AssetBundleRequest newRequest = bundle.LoadAssetAsync(modelName);
while (!newRequest.isDone)
{
Debug.Log("Loading");
yield return null;
}
model = (GameObject)newRequest.asset;
}
modelFound(model);
bundle.Unload(false);
yield return null;
}
private void DoShowObj(GameObject go)
{
Instantiate(go);
}
编写完成后,将此脚本挂载到场景中任意一个组件对象身上。
(5)打包,将打包文件部署到IIS服务器上,AB包的打包路径不是设置的IIS服务器路径,也请把资源放到服务器。
(6)输入IP访问自己的资源,查看加载是否完成。