打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Unity5 打包 AssetBundles (BuildPipeline.BuildAssetBundles)
新东西固然是好事,但是没有相关文档的情况下还是搞得我一头雾水,研究了整整一天,才搞明白这次改版的情况


新的 BuildPipeline 弃用了以前的很多函数,新创建了一个方法:

public static AssetBundleManifestBuildAssetBundles(string outputPath, AssetBundleBuild[] builds, BuildAssetBundleOptionsassetBundleOptions = BuildAssetBundleOptions.None,BuildTargettargetPlatform = BuildTarget.WebPlayer);


(官方文档位置:http://docs.unity3d.com/ScriptRe ... ldAssetBundles.html


这个方法提供几个参数,其他的参数文档说明很详细,这里只讲解新的参数:


AssetBundleBuild[] builds

这个数组其实是定义了你要打包的文件的关系 : 也就是说 将 Assets 文件夹下的哪些文件以什么样的关系进行打包.

下面以列子说明:要打包的资源如下 Assets/resources/*****  输出路径 Assets/ABs (输出文件夹必须已经存在 否则将报错。






那么 代码如下:
[C#] 纯文本查看 复制代码
[@MenuItem("AssetBundles/Build AssetBundles")]
static void BuildABs()
 {
     // Create the array of bundle build details.
     AssetBundleBuild[] buildMap  = new AssetBundleBuild[2];
     buildMap[0].assetBundleName = "resources";//打包的资源包名称 随便命名
     string[] resourcesAssets = new string[2];//此资源包下面有多少文件
     resourcesAssets[0] = "resources/1.prefab";
     resourcesAssets[1] = "resources/MainO.cs";
     buildMap[0].assetNames = resourcesAssets;
      
     BuildPipeline.BuildAssetBundles("Assets/ABs", buildMap);
 }




上面代码最主要的就是那个字符数组 标明你要打包的文件位置和名称 一定要 从Assets根目录写起并且文件名一定要指明类型:
Assets/resources/1.prefab





补充:
最近有人问到资源去重的问题,这种操作的要求在于抛弃unity自身的关联关系将所有资源都只当做资源使用,然后可以构建自身的加载工具将逻辑和资源在代码中关联起来,因为unity自身的assetbundle设置只定义名称,然后由系统构建包之间的关系,对于我来说失去了很多显性的控制。
需要自身构建:关联性打包工具,加载工具,资源定位解析工具。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Unity3D 5.3 新版AssetBundle使用方案及策略
Unity C# 打包AssetBundle与场景
Unity5的AssetBundle的一点使用心得
简单总结AssetBundle的打包/解包
Unity手游:资源打包Assetbundle
【新提醒】【【知识摘录】 Unity3D AssetBundle资源加载-IOS (二)】
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服