Assetbundle打包及加载入门详解(一)

Assetbundle是unity的一种加载方式。这种加载可以从互联网上或者本地的文件夹中加载。

要求被加载的文件必须是Assetbundle定义的格式

首先制作Assetbundle:

在project的Editor文件夹下创建新脚本CreateAssetbundles

脚本内容如下:

using UnityEngine;
using System.Collections;
using UnityEditor;
using System.IO;

public class CreateAssetbundles  {
    [MenuItem("AssetsBundle/Build AssetBundles")]
    static void BuildAllAssetBundles()//进行打包
    {
        string dir = "AssetBundles";
        //判断该目录是否存在
        if (Directory.Exists(dir) == false)
        {
            Directory.CreateDirectory(dir);//在工程下创建AssetBundles目录
        }
        //参数一为打包到哪个路径,参数二压缩选项  参数三 平台的目标
      
        BuildPipeline.BuildAssetBundles(dir, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows);
    }
}


脚本编写后会看到菜单栏里多了一项assetsbundle,如下图:

这个选项就是用来把AssetBundles文件生成,并且放到AssetBundles这样一个文件夹里。

接下来说如何把一些objects定义为AssetBundle的文件。

首先新建一个cube,我们会看到在inspector面板的最下方有一个AssetBundle的设置选项,如下图:

我们看到下面有两个箭头处,第一个就是给这个cube定义AssetBundle的名字,自定义就可以了,第二个箭头处是给这个AssetBundle的物体加后缀格式(就像图片的.jpg .png这些,只是这里是可以自定义任何格式,本案例里定义的名字为mod,后缀名为mo)

当这些都选择好之后,去菜单里点击刚才我们制作的那个build assetbundles按钮,如下图:

之后我们就会在代码设置的路径下看到创建的文件夹

 

打开文件夹会看到里面有AssetBundles和AssetBundlesmanifest文件以及刚为cube命名的的mod的文件。AssetBundles和AssetBundlesmanifest文件这两个文件可以理解为是整个文件夹的老大。所有的maninfest文件都可以用记事本打开,在这个文件里有着被打包的文件的一些信息。

至此,所有的打包任务都完成了。接下来讲解,如何加载出打包的文件。

加载的方式有三种,分别是从硬盘中加载、从网络上加载、从内存中加载。

先讲从硬盘中加载,因为我的案例是放在我电脑下的这个硬盘的,所以用硬盘中加载。

新建一个脚本,挂在到一个物体上,然后运行就可以了。

脚本如下:

using UnityEngine;
using System.Collections;

public class LoadFromFileExample : MonoBehaviour
{

    // Use this for initialization
    void Start()
    {
        AssetBundle ab = AssetBundle.LoadFromFile("AssetBundles/mod.mo");
       
      
        Object[] obj = ab.LoadAllAssets<GameObject>();//加载出来放入数组中
        //创建出来
        foreach (Object o in obj)
        {
            Instantiate(o);
            Debug.Log(o.name);
        }
        ab.Unload(false);
}

运行结果:

至此加载也完成了。但是发现一个问题,就是物体的材质丢失了,原因是物体的材质没有被打包成assetbundle,而且也没有加载出来,这个在assetbundle中称为依赖关系。本节只写,如果打包,如何从硬盘加载,至于依赖关系和其他加载方法且听下回分解。

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值