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 都是可以的。

上述步骤如下图所示:

(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 的打包,上传,下载,加载。
网友评论