- 最后登录
- 2021-7-6
- 注册时间
- 2012-12-27
- 阅读权限
- 90
- 积分
- 76145
 
- 纳金币
- 53488
- 精华
- 316
|
1.新建一个工程项目,叫AssetBundleDemo。
2.在工程中创建一个prefab,然后在他的inspector面板下有个AssetBundle选项,一定要写上名字才能打包。
3.新建Editor文件夹创建AssetBundle类。
using UnityEngine;
using System.Collections;
using UnityEditor;
public class AssetBundle {
[MenuItem("BuildBudle/Build Asset Bundles")]
static void BuildAssetBundle()
{
BuildPipeline.BuildAssetBundles(Application.dataPath+"/AssetBundles"); //打包资源路径
}
}
4.工程中要创建对应的AssetBundle文件夹,与上一步打包路径一定要一致。
5.这样就可以在菜单栏上选择BuildBundle按钮进行打包了。
6.打包完之后就可以在项目中进行读取,创建LoadAssetBundle类,绑定到项目中。
using UnityEngine;
using System.Collections;
public class LoadAssetBundle : MonoBehaviour {
private GameObject cube;
private string filePath = "file://D:\\Project\\AssetBundleDemo\\Assets\\AssetBundles\\cube"; //资源所在路径
void Start () {
StartCoroutine(GetMainObject(filePath));
}
IEnumerator GetMainObject(string filePath)
{
WWW wwwObject = new WWW(filePath); //利用www类加载
Debug.Log(wwwObject.url);
yield return wwwObject;
AssetBundle mainBundle = wwwObject.assetBundle; //获得AssetBundle
AssetBundleRequest abr = mainBundle.LoadAssetAsync("Cube", typeof(GameObject)); //异步加载GameObject类型
yield return abr;
cube = Instantiate(abr.asset) as GameObject;
yield return null;
mainBundle.Unload(false); //卸载所有包含在bundle中的对象。
wwwObject.Dispose(); //中断www
}
}
|
|