美文网首页
AssetBundle 大全 (一)

AssetBundle 大全 (一)

作者: 土豆_9724 | 来源:发表于2017-09-27 20:17 被阅读0次

    AssetBundle 大全 (一)

    大家好,我是北京菜鸟在线的unity3d 高级讲师范老师。今天,我给大家分享的是关于unity3d 4.x,和 5.x 的5.x 的打包,上传,下载,加载。希望大家能喜欢。

    一:过程:

    二:打包过程如下:

    (1):首先创建一个场景,比如在场景中创建一个Cube, 起名为player 拉到Assets下,使其成为prefab. 。

    (2) : 在Assets下创建文件夹,并改名字为Editor 在里面创建脚本。(unity3d 编译器扩展功能菜单)
    
    (3):选中prefab(player), 并在右下角下拉框中 new...    写上 player. assetbundles 或者写入  player. unity3d 都是可以的。
    
    ![](https://img.haomeiwen.com/i7269475/7556a326dc08694c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    

    上述步骤如下图所示:

    (4) 在Assets下文件夹Editor 内创建代码,代码如下:

    using UnityEngine;
    using System.Collections;
    using UnityEditor;

    public class CreateAssetBundle {
    // 这是一个扩展编辑-器,因此不需要继承MonoBehaviour

     // [MenuItem("TEacherTools/ package/simplePackage")]
    
       //自动在unity3d 菜单下生成一个菜单和子菜单
    
    [ MenuItem("Assets/Build AssetBundles" )]
      // 在unity3d的菜单Assets下,会多出一个Build AssetBundles菜单项
    
    static void BuildAllAssetBundles()   // 必须写一个静态函数
    {
    
        BuildPipeline.BuildAssetBundles("AssetBundles" );  // 把打包生的文件放在这个文件下。
    
    }
    

    }

    //需要注意的是:如果运行程序报错,我们需要手动找到这个工程的所在(鼠标右键,show in explorer ),在里面创建一个文件夹名字是:AssetBundles如下图所示: 。点击在Assets下,我们扩展的功能菜单。

    (5) 然后运行程序:会发现在上述创建的文件夹内多出了四个文件,如下图所示:

    二: Manifest文件介绍

    因为我们只打包了一个,所以,里面只有一个信息

    三:下载和加载

    (1)在Hierarchy下创建一个空的游戏对象,并在上添加C#组件,取名:DownlogadingAndLoading,效果如下图所示:
    代码如下图:

    using UnityEngine;
    using System.Collections;

    public class LoadAsset : MonoBehaviour
    {
    public string url;
    public string assetname;
    // Use this for initialization
    IEnumerator Start () {

        WWW www = new WWW(url);    // 开始下载给定的URL
        yield return www;          // 等待直到下载完成
        if (www.error != null )   //如果下载报错
        {
            Debug.LogError("网络错误" );
        }
        else {
            AssetBundle bundle = www.assetBundle;   //获取打包信息
          Object obj =  bundle.LoadAsset(assetname);  //加载资源(指定了资源名)
            Instantiate(obj);  // 实例化一个
            bundle.Unload( false); // true:表示把所有的资源全部下载,flase: 表示只下载assetname
        }
        www.Dispose(); //释放资源
                }         
    

    }

    以上是5.x 的打包,上传,下载,加载。

    相关文章

      网友评论

          本文标题: AssetBundle 大全 (一)

          本文链接:https://www.haomeiwen.com/subject/sfhpextx.html