新东西固然是好事,但是没有相关文档的情况下还是搞得我一头雾水,研究了整整一天,才搞明白这次改版的情况
新的 BuildPipeline 弃用了以前的很多函数,新创建了一个方法:
public static AssetBundleManifest BuildAssetBundles (string outputPath , AssetBundleBuild[] builds , BuildAssetBundleOptions assetBundleOptions = BuildAssetBundleOptions.None, BuildTarget targetPlatform = BuildTarget.WebPlayer);
(官方文档位置:http://docs.unity3d.com/ScriptRe ... ldAssetBundles.html)
这个方法提供几个参数,其他的参数文档说明很详细,这里只讲解新的参数:
AssetBundleBuild[] builds
这个数组其实是定义了你要打包的文件的关系 : 也就是说 将 Assets 文件夹下的哪些文件以什么样的关系进行打包.
下面以列子说明:要打包的资源如下 Assets/resources/***** 输出路径 Assets/ABs ( 输出文件夹必须已经存在 否则将报错。 )
那么 代码如下:
上面代码最主要的就是那个字符数组 标明你要打包的文件位置和名称 一定要 从Assets根目录写起并且文件名一定要指明类型:
“ Assets/resources/1.prefab ”
新的 BuildPipeline 弃用了以前的很多函数,新创建了一个方法:
public static AssetBundleManifest BuildAssetBundles (string outputPath , AssetBundleBuild[] builds , BuildAssetBundleOptions assetBundleOptions = BuildAssetBundleOptions.None, BuildTarget targetPlatform = 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 ”