AssesBuddle的使用

首先:编写一个处理AssetsBuddle(打包资源的按钮)的编辑器按钮;脚本如下:

Using UnityEngine;

Using System.Collections;

Using UnityEditor;//注意  要引入编辑器命名空间

Public class AssetBundleBuilder:Editor

{

[MenuItem("AB/Build")]

public static void Build()

{

string path = Application.streamingAssetsPath;

BuildPipeline.BuildAssetBundles(path);//将资源打包到这个路径下

}

}

然后我们来测试一下:

1:将你要打包的资源设置为预设体

2;将下面的脚本挂在到摄像机(灯光上也行,运行场景可以直接加载就行)上

using UnityEngine;

using System.Collections;

public class Test:MonoBehaviour

{

    void Start()

{

StartCoroutine(LoadAB());//开启携程

}

IEnumerator LoadAB()

{

string path = "file://"+Application.streamingAssetsPath+"/leval";//打包后资源的路径

WWW www = new WWW(path);//通过携程加载资源,放到www里

yied return www;//等待加载完毕

AssetBundle ab = www.assetBundle;// 将打包后的资源放到 AssetBundle里面

GameObject obj = ab.LoadAsset("打包的资源名字")  as GameObject;//加载ab中的一个预设体,占用预设体内存

Instantiate(obj);//加载物体占用实际内存

//关闭ab,清除无用内存(释放AssetBundle) false释放当前资源,true释放所有资源

ab.Unload(false);

}

}

通过以上操作  就可以删掉你原来的资源,Assets里面只留下Assets和Editor(存放第一个AssetsBundleBuilder脚本)就可以啦

运行场景可以通过AssetsBundle加载相应导报的资源到场景中;

原文地址:https://www.cnblogs.com/ningyongbin/p/5974100.html