打包Assetbundle

using UnityEngine;
using System.Collections;
using UnityEditor;
/// <summary>
/// 脚本位置:Editor文件夹下
/// 脚本功能:打包
/// </summary>
public class CreateAssetBundle : Editor
{
// 打包unity场景文件
[MenuItem("BuildAssetBundle/BuildOutdoor")]
static void BuildOutdoor()
{
// 需要打包的场景名字
string[] levels = { "Assets/Scenes/Shiwai/Outdoor.unity" };
//"Assets/Scenes/Shinie/Indoor.unity",
// 注意这里【区别】通常我们打包,第2个参数都是指定文件夹目录,在此方法中,此参数表示具体【打包后文件的名字】
// 记得指定目标平台,不同平台的打包文件是不可以通用的。最后的BuildOptions要选择流格式
BuildPipeline.BuildPlayer(levels, Application.streamingAssetsPath + "/Outdoor.unity3d", BuildTarget.WebGL, BuildOptions.BuildAdditionalStreamedScenes);
// 刷新,可以直接在Unity工程中看见打包后的文件
AssetDatabase.Refresh();
}

// 打包unity场景文件
[MenuItem("BuildAssetBundle/BuildIndoor")]
static void BuildIndoor()
{
// 需要打包的场景名字
string[] levels = { "Assets/Scenes/Shinie/Indoor.unity" };
//"Assets/Scenes/Shinie/Indoor.unity",
// 注意这里【区别】通常我们打包,第2个参数都是指定文件夹目录,在此方法中,此参数表示具体【打包后文件的名字】
// 记得指定目标平台,不同平台的打包文件是不可以通用的。最后的BuildOptions要选择流格式
BuildPipeline.BuildPlayer(levels, Application.streamingAssetsPath + "/Indoor.unity3d", BuildTarget.WebGL, BuildOptions.BuildAdditionalStreamedScenes);
// 刷新,可以直接在Unity工程中看见打包后的文件
AssetDatabase.Refresh();
}

// 打包unity场景文件
[MenuItem("BuildAssetBundle/BuildMainScene")]
static void BuildMainScene()
{
// 需要打包的场景名字
string[] levels = { "Assets/Scenes/MainScene.unity" };
//"Assets/Scenes/Shinie/Indoor.unity",
// 注意这里【区别】通常我们打包,第2个参数都是指定文件夹目录,在此方法中,此参数表示具体【打包后文件的名字】
// 记得指定目标平台,不同平台的打包文件是不可以通用的。最后的BuildOptions要选择流格式
BuildPipeline.BuildPlayer(levels, Application.streamingAssetsPath + "/MainScene.unity3d", BuildTarget.WebGL, BuildOptions.BuildAdditionalStreamedScenes);
// 刷新,可以直接在Unity工程中看见打包后的文件
AssetDatabase.Refresh();
}

[MenuItem("BuildAssetBundle/BuildAllAssetBundles")]
static void BuildAllAssetBundle()
{
BuildPipeline.BuildAssetBundles(Application.streamingAssetsPath, BuildAssetBundleOptions.None, BuildTarget.WebGL);
AssetDatabase.Refresh();
}
}

相关推荐