- 最后登录
- 2021-7-6
- 注册时间
- 2012-12-27
- 阅读权限
- 90
- 积分
- 76145
![Rank: 8](static/image/common//star_level3.gif) ![Rank: 8](static/image/common//star_level3.gif)
- 纳金币
- 53464
- 精华
- 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
- }
- }
复制代码 |
|