private void ExecuteBuild() { var prebuildTime = System.DateTime.Now; if (AssetBundleModel.Model.DataSource.CanSpecifyBuildOutputDirectory) { if (m_ForceRebuild.state) { string message = "Do you want to delete all files in the directory " + Constants.BuildPath + "?"; if (EditorUtility.DisplayDialog("File delete confirmation", message, "Yes", "No")) { try { if (Directory.Exists(Constants.BuildPath)) { Directory.Delete(Constants.BuildPath, true); } } catch (System.Exception e) { Debug.LogException(e); } } } if (!Directory.Exists(Constants.BuildPath)) { Directory.CreateDirectory(Constants.BuildPath); } } BuildAssetBundleOptions opt = BuildAssetBundleOptions.None; if (AssetBundleModel.Model.DataSource.CanSpecifyBuildOptions) { opt |= BuildAssetBundleOptions.UncompressedAssetBundle; foreach (var tog in m_ToggleData) { if (tog.state) { opt |= tog.option; } } } ABBuildInfo buildInfo = new ABBuildInfo(); buildInfo.outputDirectory = Constants.BuildPath; buildInfo.options = opt; buildInfo.buildTarget = BuildTarget.StandaloneWindows; buildInfo.onBuild = (assetBundleName) => { if (m_InspectTab == null) { return; } m_InspectTab.AddBundleFolder(buildInfo.outputDirectory); m_InspectTab.RefreshBundles(); }; PreviewShaders.SetAllMaterialsOriginal(); AssetBundleModel.Model.DataSource.BuildAssetBundles(buildInfo); DirectoryInfo di = new DirectoryInfo(buildInfo.outputDirectory); List <string> changedFiles = di.GetFiles("*.unity3d", SearchOption.AllDirectories).Where(x => x.LastWriteTime >= prebuildTime).Select(x => x.FullName).ToList(); AssetDatabase.Refresh(ImportAssetOptions.ForceUpdate); SB3UScript.BuildAndRunScripts(Constants.BuildPath, m_UserData.m_KoikatsuPath, m_UserData.m_Compression, changedFiles); if (changedFiles.Count == 1) { Debug.Log("Successfully built 1 asset bundle."); } else { Debug.Log("Successfully built " + changedFiles.Count + " asset bundles."); } PreviewShaders.SetAllMaterialsPreview(); }
/// <summary> /// Code to run on editor quit /// </summary> private static void Quitting() { PreviewShaders.SetAllMaterialsOriginal(); }