您的位置:首页 > 移动开发 > Unity3D

unity 5 Assetbundle 打包 scene 工具

2016-09-21 17:44 543 查看
这段时间项目用到场景的动态加载,网上一查有挺多的,但很杂乱。有的版本太老,有的功能太少。

所谓自己动手丰衣足食。然后就自己写了一个能打包多平台的小工具。



可以打包多平台。在unity5.4上面亲测可行,有时候打包完会出一个错误,那个没关系,不影响使用,应该是写工具的时候哪里没写好。如果你发现了,麻烦你帮我指出来喽。

废话不多说。

using UnityEngine;
using UnityEditor;
using System.IO;
/// <summary>
/// 脚本位置:Editor文件夹下
/// 脚本功能:打包scenes
/// </summary>
public class BuildAssetBundleScene : EditorWindow
{
private Scenesbuild msb;
// 打包unity场景文件
[MenuItem("Assets/Build AssetBundle Scene")]
public static void ShowWindow() {

EditorWindow.GetWindow(typeof(BuildAssetBundleScene), true, " 场景打包");
}

void OnGUI() {
EditorGUILayout.BeginVertical();
GUILayout.Label("平台选择", EditorStyles.boldLabel);
msb = (Scenesbuild)EditorGUILayout.EnumPopup(msb);
GUILayout.Label("打包", EditorStyles.boldLabel);
if (GUILayout.Button("打包", EditorStyles.miniButton)) {

BuildScenes();

}
EditorGUILayout.EndVertical();
}

public enum Scenesbuild
{
Window,
Ios,
Android,
Window64,
}
void BuildScenes() {
BuildTarget mtarget;
string filepath;
switch (msb)
{
case Scenesbuild.Android:
mtarget = BuildTarget.Android;
filepath = "/Android";
break;
case Scenesbuild.Ios:
mtarget = BuildTarget.iOS;
filepath = "/Ios";
break;
case Scenesbuild.Window:
mtarget = BuildTarget.StandaloneWindows;
filepath = "/Window";
break;
case Scenesbuild.Window64:
mtarget = BuildTarget.StandaloneWindows64;
filepath = "/Window64";
break;
default:
mtarget = BuildTarget.StandaloneWindows64;
filepath = "/Window64";
break;
}
// 需要打包的场景名字
string scenename = Application.loadedLevelName;
string[] levels = { "Assets/" + scenename + ".unity" };

string out_path = Application.dataPath + "/unity3d"+filepath;
if (!Directory.Exists(out_path))
{

Directory.CreateDirectory(out_path);
}

BuildPipeline.BuildPlayer(levels,out_path+"/" + scenename + ".unity3d", mtarget, BuildOptions.BuildAdditionalStreamedScenes);
// 刷新,可以直接在Unity工程中看见打包后的文件
AssetDatabase.Refresh();

}

}

还需要加载的话。都在这里快来拿吧。

链接:http://pan.baidu.com/s/1nvrpcE1 密码:js8a
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: