前言
在unity中使用assertbundle是一个十分常见的场景,在各种各样的方面都会遇到,但是unity editor 本身不提供任何的按钮为你打包assertbundle,但是unity提供api来帮助你,所以大家一般都是编写脚本。
脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| using System.IO; using UnityEditor;
public class QAssetBundleEditor { static string OUT_PATH_WIN64 = "AssetBundles/Win64/AssetBundles"; static string OUT_PATH_IOS = "AssetBundles/IOS/AssetBundles"; static string OUT_PATH_Android = "AssetBundles/Android/AssetBundles";
[MenuItem("AssetBundle/BuildWin64")] public static void BuildAssetBundle_Win64() { BuildAssetBundles(OUT_PATH_WIN64, BuildTarget.StandaloneWindows64); }
[MenuItem("AssetBundle/BuildIOS")] public static void BuildAssetBundle_IOS() { BuildAssetBundles(OUT_PATH_IOS, BuildTarget.iOS); }
[MenuItem("AssetBundle/BuildAndroid")] public static void BuildAssetBundle_Android() { BuildAssetBundles(OUT_PATH_Android, BuildTarget.Android); }
public static void BuildAssetBundles(string outPath, BuildTarget buildTarget) { if (Directory.Exists(outPath)) { Directory.Delete(outPath, true); } Directory.CreateDirectory(outPath); BuildPipeline.BuildAssetBundles(outPath, BuildAssetBundleOptions.UncompressedAssetBundle, buildTarget);
AssetDatabase.Refresh(); } }
|
注意的事项

不要忘记给你需要打包的AssetBundle命名如果不命名unity是不会打包的,abb是后缀名是可以不用设置的。

命名时选择new

输入后回车就设置名字完成。

再选择一个就好了。