public static void Build(string externalResourcesPath) { var exportPath = GetExportPath(); if (string.IsNullOrEmpty(exportPath)) { return; } if (Directory.Exists(exportPath)) { Directory.Delete(exportPath, true); } EditorApplication.LockReloadAssemblies(); #if ENABLE_CRIWARE CriAssetGenerator.Generate(exportPath, externalResourcesPath); #endif // CriAssetGeneratorでCriのManifestファイルを生成後に実行. var assetBundleManifest = BuildAssetBundle.BuildAllAssetBundles(exportPath); // ビルド成果物の情報をAssetInfoManifestに書き込み. AssetInfoManifestGenerator.SetAssetFileInfo(exportPath, externalResourcesPath, assetBundleManifest); // 再度AssetInfoManifestだけビルドを実行. BuildAssetBundle.BuildAssetInfoManifest(exportPath, externalResourcesPath); // 不要ファイル削除. BuildAssetBundle.DeleteUnUseFiles(exportPath); // AssetBundleファイルをパッケージ化. BuildAssetBundle.BuildPackage(exportPath); EditorApplication.UnlockReloadAssemblies(); UnityConsole.Event(ExternalResources.ConsoleEventName, ExternalResources.ConsoleEventColor, "Build ExternalResource Complete."); }
public static void Build(string externalResourcesPath, AssetManageConfig assetManageConfig) { var exportPath = GetExportPath(); if (string.IsNullOrEmpty(exportPath)) { return; } if (Directory.Exists(exportPath)) { Directory.Delete(exportPath, true); } EditorApplication.LockReloadAssemblies(); try { // アセット情報ファイルを生成. var assetInfoManifest = AssetInfoManifestGenerator.Generate(externalResourcesPath, assetManageConfig); // キャッシュ済みアセットバンドルのハッシュ値取得. var cachedAssetBundleHashs = BuildAssetBundle.GetCachedAssetBundleHash(); // CRIアセットを生成. #if ENABLE_CRIWARE_ADX || ENABLE_CRIWARE_SOFDEC CriAssetGenerator.Generate(exportPath, externalResourcesPath, assetInfoManifest); #endif // AssetBundleをビルド. var assetBundleManifest = BuildAssetBundle.BuildAllAssetBundles(); // 不要になった古いAssetBundle削除. BuildAssetBundle.CleanUnUseAssetBundleFiles(); // ビルド成果物の情報をAssetInfoManifestに書き込み. var assetBundlePath = BuildAssetBundle.GetAssetBundleOutputPath(); AssetInfoManifestGenerator.SetAssetBundleFileInfo(assetBundlePath, externalResourcesPath, assetBundleManifest); #if ENABLE_CRIWARE_ADX || ENABLE_CRIWARE_SOFDEC AssetInfoManifestGenerator.SetCriAssetFileInfo(exportPath, externalResourcesPath, assetBundleManifest); #endif // アセットバンドルの参照情報をAssetInfoManifestに書き込み. BuildAssetBundle.SetDependencies(assetInfoManifest, assetBundleManifest); // 再度AssetInfoManifestだけビルドを実行. BuildAssetBundle.BuildAssetInfoManifest(externalResourcesPath); // 更新が必要なパッケージファイルを削除. BuildAssetBundle.CleanOldPackage(cachedAssetBundleHashs); // AssetBundleファイルをパッケージ化. BuildAssetBundle.BuildPackage(exportPath, assetInfoManifest, assetManageConfig.CryptPassword); // 出力先フォルダを開く. UnityEditorUtility.OpenFolder(exportPath); UnityConsole.Event(ExternalResources.ConsoleEventName, ExternalResources.ConsoleEventColor, "Build ExternalResource Complete."); } catch (Exception e) { Debug.LogException(e); throw; } finally { EditorApplication.UnlockReloadAssemblies(); } }