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();
 }