AssetBundle学习及简单应用

来源:互联网 发布:淘宝访客计算公式 编辑:程序博客网 时间:2024/05/05 20:39
AssetBundle学习及简单应用


1.制作并打包AssetBundle
①将游戏资源做成Prefab,并设置AssetBundle文件(Inspector面板最下方)
②创建Editor文件夹,里面创建打包AssetBundle专用脚本(CreateAssetBundle.cs)
③在CreateAssetBundle.cs中编写方法:


//在菜单栏中的位置地址,点击地址下的BuildAssetBundle键执行此方法
[MainItem("Asset/BuildAssetBundle")]
static void BuildAssetBundle()
{
   //打包方法
   //AssetBundles为assetbundle文件存放路径位置,若路径中没有该文件夹会报错
   BuildPipeline.BuildAssetBundles("AssetBundles");
}


④打包后的文件中assetbundle.manifest中记录了所有AssetBundle文件名称(Name)及其依赖(Dependencies),各assetbundle文件中也会记录自身文件名称及依赖


2.下载及调用AssetBundle
①创建游戏物体AssetManager,并添加LoadAssetBundle.cs脚本
②在LoadAssetBundle.cs脚本中编写方法:
 
IEnumerator LoadAssetBundle()
{
    //使用using(){}来调用www,是因为www要释放,而using可以帮助释放
    //url为资源地址,本地文件中需加file://   ,服务器文件需加http://
    using(WWW www = new WWW(url))
   {
      yield return www;
      if(www.error!=null)
        {
          Debug.log("网络错误");
        }
       else
        { 
          AssetBundle bundle = www.assetBundle;
                                //下方的assetbundle为需要加载的资源文件名
          Object obj = bundle.LoadAsset(assetbundle);
          Instantiate(obj);


          //资源bundle用后需要释放,否则会占内存
          //Unload(false)  true:释放所有资源   false:释放已用资源
          bundle.Unload(false);
        }
   }
}

0 0
原创粉丝点击