个人资料

主页 博客 留言板 搜索
跳过导航链接首页 > 博客列表 > 博客正文

Unity为资源打包生成AssetBundle包(二)

分类

接上文:Unity3d使用AssetBundle工作流程

Assets文件夹下的Editor文件夹(如果没有手动创建一个)下创建一个C#脚本,并编辑代码如下。

using UnityEngine;
using System.Collections;
using UnityEditor;
using System.Collections.Generic;
 
public class ExportAssetBundles : MonoBehaviour {
 
    [MenuItem("当前editor/打包")]
    static void CreateAssetBundlesMain()
    {
        BuildPipeline.BuildAssetBundles("Assets/StreamingAssets", BuildAssetBundleOptions.None, BuildTarget.WSAPlayer);
 
    }
}

上面的代码注意,新版的打包必须指定平台,不同平台的资源包不能通用。Unity5.x以后提供了打包的UI,在inspector面板最下面,可以为不同的资源指定打入assetBundle包的名字和版本。

给每个资源设置对应的包名字和版本。这样就可以将不同资源分别打包。

利用inspector面板设置后,运行菜单 当前editor->打包 即开始打包

因为每个平台打包不通用,因此上面的打包代码可以改进一下:

[MenuItem("当前editor/ANDROID打包")]
static void CreateAssetAndroidBundles()
{
    BuildPipeline.BuildAssetBundles("Assets/StreamingAssets", BuildAssetBundleOptions.None, BuildTarget.Android);
}
[MenuItem("当前editor/APPLE打包")]
static void CreateAppleAssetBundles()
{
    BuildPipeline.BuildAssetBundles("Assets/StreamingAssets", BuildAssetBundleOptions.None, BuildTarget.iOS);
}
[MenuItem("当前editor/UWP打包")]
static void CreateUwpAssetBundles()
{
    BuildPipeline.BuildAssetBundles("Assets/StreamingAssets", BuildAssetBundleOptions.None, BuildTarget.WSAPlayer);
}

这样,在菜单面板就可以选定打包的平台了,不用每次修改代码,如下图所示:

下一节:处理Assets之间的依赖关系

songshizhao
最初发表2017/3/6 21:20:12 最近更新2017/3/6 21:20:12 4386
为此篇作品打分
10