www下载远程ab包
最近一直在忙WebGL的项目,简直蛋疼,尤其是内存方面,什么都得节省,不敢让模型做太高精度的贴图,ui也是,但是这个项目模型量有点多,导致加载时间简直长到不能忍受,于是还是把资源打成ab包,上传服务器,在网站打开后再进行下载使用
打ab包
unity打ab包很简单 把想要打包的资源,在assetlabel框里定好assetbundle名字就行,然后把以下代码放进Editor文件夹内,之后在Assets/Build AssetBundles菜单栏中点击build就可以新生成一个assetbundles文件夹,里面就是生成的ab包
using System.IO;
using UnityEditor;
using UnityEngine;
public class BuildAB : MonoBehaviour
{
//[MenuItem("AssetBundle/Package (Default)")]
[MenuItem("Assets/Build AssetBundles")]
static void BuildAllAssetBundles()
{
string assetBundleDirectory = "Assets/AssetBundles";
if (!Directory.Exists(assetBundleDirectory))
{
Directory.CreateDirectory(assetBundleDirectory);
}
BuildPipeline.BuildAssetBundles(assetBundleDirectory, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows);
}
}
www下载ab包
把ab包上传到服务器以后,就要下载了,这里我用的是www下载,直接上代码
IEnumerator wwwDown() {
www= new WWW(url);//url链接记得带ab包的后缀,没有就不加
yield return www;
if (www.isDone) {
isDown = false;
Destroy(Lodding.gameObject);
AssetBundle ab = www.assetBundle;
Scenes = ab.LoadAsset<GameObject>("scenes.prefab");
dancerMan = ab.LoadAsset<GameObject>("DancerMan.prefab");
ab.Unload(false);//false:只卸载用过的资源 true:卸载全部资源
Train.gameObject.SetActive(true);
//Instantiate(go);
}
//释放资源(非托管资源)
www.Dispose();
}