赞
踩
AssetBundle加载功能
(1)导入制作好的model模型,制作成prefab,小提示:需要将Modle的Rig属性设置为none,因为后面进行AB包加载的时候发现,带有动画属性的包,没有办法加载出来。
(2)导入官方免费打包助手 Asset Bundle Manager,没有此插件的并且不会下载的,评论区留邮箱,我会抽空发到您邮箱。
(3)如下图所示,点击build完成打包,相关的属性设置可以根据自己的需求来修改,平台一定要选WebGL.
(4)编写加载模块代码
- /// <summary>
- /// 下载地址
- /// </summary>
- 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<GameObject> 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<GameObject>(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访问自己的资源,查看加载是否完成。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。