资源管理是游戏开发的重要环节,Unity中使用AssetBundle能够很是方便地帮咱们打包和更新游戏内容,在5系列中,AssetBundle更是方便好用,如今让咱们先进行打包吧。编辑器
刚说了,5系列打包很是方便,细心的同志可能已经发现,在右下角多出了个AssetBundle标签工具栏,这使用得咱们在选择要打包的文件时,没必要再像4系列中同样要在Editor运行库脚本中写一堆取得对象的代码了。
那么,这个工具栏是怎么帮咱们解决问题的呢?很简单,选中咱们的须要的打包的资源(包括场景哦),而后在工具栏编辑和选择对应的标签。左边的AssetBundle是咱们要打包的文件存放目录和名字,其中,在目录和名字之间用“/”分开,如“scenes/loaderscene.unity3d”,表示scenes目录下loaderscene.unity3d Bundle文件。后面还有一个Variants变量标签,其实就和后缀差很少(我的理解,有更好的使用请多多指教),但我的通常不推荐使用,而是像前面同样,直接写上后缀更直观方便。以下图:工具
咱把须要打包的资源都设置好相应的标签,建议至少有一个场景和一个Prefab,以便咱们后面测试。
OK,准备工做作好了,必定小代码仍是须要的,创建一个Editor文件夹,并创建脚本BuildAssetBundleEditor,内容以下:测试
1 using UnityEngine; 2 using System.Collections; 3 using UnityEditor; 4 using System.IO; 5 6 7 ///<summary> 8 /// 打包编辑器 9 /// </summary> 10 11 public class MrCBuildAssetBundleEditor : EditorWindow { 12 13 14 /// <summary> 15 /// 获取不一样平台下的包裹存储路径 16 /// </summary> 17 18 public static string GetAssetBundlePath(BuildTarget target) 19 { 20 string opp = ""; 21 22 opp += Application.persistentDataPath; 23 opp += "AssetBundles/"; 24 25 switch (target) { 26 case BuildTarget.iOS: 27 { 28 opp += "iOS/"; 29 break; 30 } 31 case BuildTarget.StandaloneOSXUniversal: 32 { 33 opp += "MacOS/"; 34 break; 35 } 36 default: 37 { 38 opp += "Others/"; 39 break; 40 } 41 } 42 43 //当在硬盘目录结构里不存在该路径时,建立文件夹 44 if (!Directory.Exists(opp)) 45 { 46 Directory.CreateDirectory (opp); 47 } 48 49 return opp; 50 } 51 52 [MenuItem("MrCAssetBundles/Build")] 53 public static void CustomBuildAssetBundle() 54 { 55 //包裹存储的路径... 56 string outputPath = MrCBuildAssetBundleEditor.GetAssetBundlePath(EditorUserBuildSettings.activeBuildTarget); 57 58 //输出路径 59 Debug.Log (outputPath); 60 61 //打包过程.. 62 BuildPipeline.BuildAssetBundles(outputPath); 63 } 64 }
OK,打包完成后,能够到persistent目录下查看Bundle文件,其中manifest后缀的信息文件能够用文本工具打开查看依赖关系等ui