public static bool PackingAssetBundle(BuildTarget eTarget, eBundlePackType ePackType, bool bIsDelOriginal, string strOutputPath) { strOutputPath = string.Format("{0}/{1}", strOutputPath, SHHard.GetStrToPlatform(eTarget)); // 정보 테이블 준비 var pTableData = CreateTableData(eTarget); // 패킹할 번들정보 얻기 var dicBundles = GetPackingBundleList(pTableData, ePackType); // 번들 패킹 시작 및 아웃풋 if (false == MakeAssetBundle(eTarget, strOutputPath, dicBundles)) { return(false); } // 원본리소스 모두 제거 if (true == bIsDelOriginal) { DeleteOriginalResource(pTableData); } // 번들정보파일 업데이트 및 아웃풋 UpdateBundleInfoTable(eTarget, pTableData, dicBundles, strOutputPath); // 메시지 출력 Debug.LogFormat("Success Make AssetBundles!!(Count : {0})", dicBundles.Count); return(true); }
// 유틸 : PackingAssetBundles 패킹 static void PackingAssetBundles(BuildTarget eTarget, eBundlePackType eType, bool bIsDelOriginal) { Debug.LogFormat("** AssetBundles Packing Start({0}) -> {1}", eTarget, DateTime.Now.ToString("yyyy-MM-dd [ HH:mm:ss ]")); { SHAssetBundleMaker.PackingAssetBundle(eTarget, eType, bIsDelOriginal); AssetDatabase.Refresh(); } Debug.LogFormat("** AssetBundles Packing End({0}) -> {1}", eTarget, DateTime.Now.ToString("yyyy-MM-dd [ HH:mm:ss ]")); }
// 유틸 : Only Bundle Packing static void OnlyBundlePacking(eNationType eNation, BuildTarget eTarget, eBundlePackType ePackType) { // 빌드타겟 별 설정 처리 SetBuildTargetInfo(eTarget); // Asset Bundle Packing PackingAssetBundles(eTarget, ePackType, false); // 후처리 PostProcessor(); }
static void PackingAssetBundles(BuildTarget eTarget, eBundlePackType eType) { Debug.LogFormat("** [SHBuilder] AssetBundles Packing Start({0}) -> {1}", eTarget, DateTime.Now.ToString("yyyy-MM-dd [ HH:mm:ss ]")); { string strExportPath = string.Format("{0}/{1}/{2}", SHPath.GetBuild(), SHUtils.GetPlatformStringByEnum(eTarget), "AssetBundle"); SHUtils.CreateDirectory(strExportPath); BuildPipeline.BuildAssetBundles(strExportPath, BuildAssetBundleOptions.None, eTarget); } Debug.LogFormat("** [SHBuilder] AssetBundles Packing End({0}) -> {1}", eTarget, DateTime.Now.ToString("yyyy-MM-dd [ HH:mm:ss ]")); }
// 유틸 : 번들패킹 명령 void StartPacking(int iPlatformType, eBundlePackType ePackType, bool bIsDeleteOriginal, string strOutputPath) { if (eBundlePackType.None == ePackType) { return; } switch ((PlatformType)iPlatformType) { case PlatformType.AOS: SHAssetBundleMaker.PackingAssetBundle(BuildTarget.Android, ePackType, bIsDeleteOriginal, strOutputPath); break; case PlatformType.IOS: SHAssetBundleMaker.PackingAssetBundle(BuildTarget.iOS, ePackType, bIsDeleteOriginal, strOutputPath); break; case PlatformType.PC: SHAssetBundleMaker.PackingAssetBundle(BuildTarget.StandaloneWindows, ePackType, bIsDeleteOriginal, strOutputPath); break; case PlatformType.ALL: SHAssetBundleMaker.PackingAssetBundle(BuildTarget.StandaloneWindows, ePackType, bIsDeleteOriginal, strOutputPath); SHAssetBundleMaker.PackingAssetBundle(BuildTarget.iOS, ePackType, bIsDeleteOriginal, strOutputPath); SHAssetBundleMaker.PackingAssetBundle(BuildTarget.Android, ePackType, bIsDeleteOriginal, strOutputPath); break; } }
// 유틸 : App Build + BundlePacking static void AppBuildWithBundlePacking(eNationType eNation, BuildTarget eTarget, eServiceMode eMode, eBundlePackType ePackType, BuildOptions eOption) { // 국가 별 설정 처리 SetNationInfo(eNation, eMode); // 빌드타겟 별 설정 처리 SetBuildTargetInfo(eTarget); // Asset Bundle Packing PackingAssetBundles(eTarget, ePackType, true); // App Build BuildApplication(SCENES, eTarget, eOption); // 후처리 PostProcessor(); }
static void AssetBundlesPacking(BuildTarget eTarget, eBundlePackType ePackType) { PackingAssetBundles(eTarget, ePackType); PostProcessor(eTarget); }
// 유틸 : 패킹할 번들 리스트 만들기 static Dictionary <string, AssetBundleInfo> GetPackingBundleList(SHTableData pTableData, eBundlePackType ePackingType) { var pBundleInfo = GetBundleTable(pTableData); switch (ePackingType) { case eBundlePackType.All: return(pBundleInfo.GetContainer()); case eBundlePackType.Update: return(pBundleInfo.GetBundleListToCompare(GetResourceTable(pTableData))); } return(new Dictionary <string, AssetBundleInfo>()); }
public static bool PackingAssetBundle(BuildTarget eTarget, eBundlePackType ePackType, bool bIsDelOriginal) { return(PackingAssetBundle(eTarget, ePackType, bIsDelOriginal, SHPath.GetPathToExportAssetBundle())); }
// 인터페이스 : 번들패킹 public static bool PackingAssetBundle(BuildTarget eTarget, eBundlePackType ePackType) { return(PackingAssetBundle(eTarget, ePackType, true, SHPath.GetPathToExportAssetBundle())); }