在实际项目中, 我们可能为了更新资源 ,或者减小apk的大小,就会用到AssetBundle来打包文件, 下面将实现这个打包的功能代码整理出来分享一下
using UnityEngine;
using System.Collections;
using UnityEditor;//必须引用此类
public class dabaoziyuan : MonoBehaviour {
/// <summary>
/// 将所选择的的物体和物体有依赖关系的对象一起打包
/// </summary>
[MenuItem("Assets/Build_Android")]
static void ExportAndroidResource()
{
// Bring up save panel
string path = EditorUtility.SaveFilePanel("Save Resource", "", "New Resource", "unity3d");
//path = Application.dataPath + "/StreamingAssets/ALL.assetbundle";
if (path.Length != 0)
{
// Build the resource file from the active selection.
Object[] selection = Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets);
BuildPipeline.BuildAssetBundle(Selection.activeObject, selection, path, BuildAssetBundleOptions.CollectDependencies |
BuildAssetBundleOptions.CompleteAssets,BuildTarget.Android);
Selection.objects = selection;
}
}
[MenuItem("Assets/Build_Win")]
static void ExportWinResource()
{
// Bring up save panel
string path = EditorUtility.SaveFilePanel("Save Resource", "", "New Resource", "unity3d");
//path = Application.dataPath + "/StreamingAssets/ALL.assetbundle";
if (path.Length != 0)
{
// Build the resource file from the active selection.
Object[] selection = Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets);
BuildPipeline.BuildAssetBundle(Selection.activeObject, selection, path, BuildAssetBundleOptions.CollectDependencies |
BuildAssetBundleOptions.CompleteAssets);
Selection.objects = selection;
}
}
}
将这段代码导入我们的项目中,会在Assets文件窗口下有两个新的选择菜单
Build_Android<pre name="code" class="csharp">Build_Win
这个 可以在上面代码中更改,
首先我们选中要打包的资源 模型,特效,图集什么的, 再选这我们要打包的类型,是安卓 ,还是PC,资源通过WWW 来加载使用即可。