/// <summary> /// Creates the asset bundle. /// </summary> /// <param name="isAll">If set to <c>true</c> is all.</param> /// <param name="target">Target.</param> static void CreateAssetBundle(bool isAll, BuildTarget target) { FileUtil.DeleteFileOrDirectory(Application.dataPath + "/StreamingAssets/"); AssetDatabase.CreateFolder("Assets", "StreamingAssets"); if (isAll) { AssetBundlePacker.CreateAssetBunldesALL(target); } else { AssetBundlePacker.CreateAssetBunldesMain(target); } }
private static void Build(BuildTarget build_target) { string platform = AssetBundlePacker.GetPlatformForPackRes(build_target); string build_path = ""; string build_ExecutableFile = ""; if (platform == "windows") { build_path = Application.dataPath + "/../Build/" + platform + "/"; build_ExecutableFile = build_path + "MechStorm.exe"; } else if (platform == "osx") { build_path = Application.dataPath + "/../Build/" + platform + "/"; build_ExecutableFile = build_path + "MechStorm.app"; } string[] levels = { "Assets/Scenes/FirstScene.unity", "Assets/Scenes/MainScene.unity", "Assets/Scenes/CardEditorScene.unity", "Assets/Scenes/StoryEditorScene.unity", }; BuildOptions option_build = BuildOptions.CompressWithLz4; PlayerSettings.productName = "MechStorm"; string res = Application.dataPath + "/Resources/"; string res_back = Application.dataPath + "/Resources_back/"; string res_asset = "Assets/Resources"; string res_back_asset = "Assets/Resources_back"; string ab_Windows = Application.streamingAssetsPath + "/AssetBundle/windows/"; string ab_MacOS = Application.streamingAssetsPath + "/AssetBundle/osx/"; string ab_back = Application.dataPath + "/StreamingAsset_back/AssetBundle/"; string ab_Windows_back = Application.dataPath + "/StreamingAsset_back/AssetBundle/windows/"; string ab_MacOS_back = Application.dataPath + "/StreamingAsset_back/AssetBundle/osx/"; if (Directory.Exists(ab_back)) { Directory.Delete(ab_back, true); } Directory.CreateDirectory(ab_back); if (Directory.Exists(ab_Windows_back)) { Directory.Delete(ab_Windows_back, true); } if (Directory.Exists(ab_MacOS_back)) { Directory.Delete(ab_MacOS_back, true); } if (Directory.Exists(build_path)) { Directory.Delete(build_path, true); } Directory.CreateDirectory(build_path); if (Directory.Exists(res_back)) { Directory.Delete(res_back, true); } if (Directory.Exists(res)) { if (Directory.Exists(res_back)) { AssetDatabase.MoveAssetToTrash(res_back_asset); } string msg = AssetDatabase.MoveAsset(res_asset, res_back_asset); if (!string.IsNullOrEmpty(msg)) { Debug.LogError(msg); } } if (build_target == BuildTarget.StandaloneWindows64) { if (Directory.Exists(ab_MacOS)) { Directory.Move(ab_MacOS, ab_MacOS_back); } } else if (build_target == BuildTarget.StandaloneOSX) { if (Directory.Exists(ab_Windows)) { Directory.Move(ab_Windows, ab_Windows_back); } } try { AssetDatabase.Refresh(); AssetDatabase.SaveAssets(); BuildPipeline.BuildPlayer(levels, build_ExecutableFile, build_target, option_build); } catch { // ignored } finally { if (Directory.Exists(res_back)) { if (Directory.Exists(res)) { AssetDatabase.MoveAssetToTrash(res_asset); } string msg = AssetDatabase.MoveAsset(res_back_asset, res_asset); if (!string.IsNullOrEmpty(msg)) { Debug.LogError(msg); } } if (build_target == BuildTarget.StandaloneWindows64) { if (Directory.Exists(ab_MacOS_back)) { Directory.Move(ab_MacOS_back, ab_MacOS); } } else if (build_target == BuildTarget.StandaloneOSX) { if (Directory.Exists(ab_Windows_back)) { Directory.Move(ab_Windows_back, ab_Windows); } } } }
public static void Build_MacOS_PackBuild() { AssetBundlePacker.AssetBundlePacker_MacOS(); Build(BuildTarget.StandaloneOSX); }
public static void Build_Windows_PackBuild() { AssetBundlePacker.AssetBundlePacker_StandaloneWindows(); Build(BuildTarget.StandaloneWindows64); }
//绘制窗口时调用 void OnGUI() { scroll_pos = EditorGUILayout.BeginScrollView(scroll_pos); //输入框控件 GUILayout.Space(10); setting.appName = EditorGUILayout.TextField("项目名称:", setting.appName); GUILayout.Space(5); keystoreCnf.bundleIdentifier = EditorGUILayout.TextField("项目包名:", keystoreCnf.bundleIdentifier); GUILayout.Space(5); setting.version = EditorGUILayout.TextField("版本号:", setting.version); GUILayout.Space(5); GUILayout.BeginHorizontal(); GUILayout.Space(5); GUILayout.Label("keystore", GUILayout.Width(146), GUILayout.Height(18f)); GUILayout.Label(keystoreCnf.keystore, "HelpBox", GUILayout.Height(18f)); if (GUILayout.Button(new GUIContent("浏览", "浏览文件夹"))) { string path = EditorUtility.OpenFilePanel("keystore", keystoreCnf.keystore, "keystore"); keystoreCnf.keystore = path.Replace(System.Environment.CurrentDirectory.Replace("\\", "/"), "."); SaveSetting(); SaveKeystoreSetting(); } GUILayout.EndHorizontal(); GUILayout.Space(5); keystoreCnf.keypass = EditorGUILayout.TextField("keypass:"******"keyaliname:", keystoreCnf.keyaliname); GUILayout.Space(5); keystoreCnf.keyalipass = EditorGUILayout.TextField("keyalipass:"******"转配置")) { ConfigBuilder.BuildConfig(); } if (GUILayout.Button("设置资源信息(AB名、SpriteTag)")) { AssetBundlePacker.SetResInfo(); } if (GUILayout.Button("清理AssetBundle")) { AssetBundlePacker.ClearAssetBundleDirectory(); SaveSetting(); } if (GUILayout.Button("构建AssetBundle(差量更新)")) { AssetBundlePacker.BuildCurrentAssetBundle(); SaveSetting(); } if (GUILayout.Button("重新构建AssetBundle")) { AssetBundlePacker.ClearAssetBundleDirectory(); AssetBundlePacker.BuildCurrentAssetBundle(); SaveSetting(); } if (GUILayout.Button("快速构建")) { SaveSetting(); Build(); } if (GUILayout.Button("切换平台并构建APK")) { AssetBundlePacker.BuildApk(); } EditorGUILayout.EndScrollView(); }
public static void PackTexture() { UnityEngine.Object[] objs = Selection.objects; AssetBundlePacker.PackTogether(objs); }
private static void PackAssetBundle() { AssetBundlePacker.Pack(); }
static void BuildAndroidSplit() { AssetBundlePacker.CreateAssetBundle(false, BuildTarget.Android); }
static void BuildMacOne() { AssetBundlePacker.CreateAssetBundle(true, BuildTarget.StandaloneOSX); }
static void BuildMacSplit() { AssetBundlePacker.CreateAssetBundle(false, BuildTarget.StandaloneOSX); }
static void BuildiOSOne() { AssetBundlePacker.CreateAssetBundle(true, BuildTarget.iOS); }
static void BuildiOSSplit() { AssetBundlePacker.CreateAssetBundle(false, BuildTarget.iOS); }
static void BuildAndroidOne() { AssetBundlePacker.CreateAssetBundle(true, BuildTarget.Android); }