private void OnGUI()
 {
     EditorGUILayout.BeginHorizontal();
     m_nBuildTargetIdx = EditorGUILayout.Popup("构建平台", m_nBuildTargetIdx, m_arrBuildTargetDesc);;
     EditorGUILayout.EndHorizontal();
     EditorGUILayout.BeginHorizontal();
     m_bOpenFolder = EditorGUILayout.Toggle("构建完成后打开目录", m_bOpenFolder);
     EditorGUILayout.EndHorizontal();
     EditorGUILayout.BeginHorizontal();
     m_bUseMD5Name = EditorGUILayout.Toggle("AssetBundle使用MD5名字", m_bUseMD5Name);
     EditorGUILayout.EndHorizontal();
     EditorGUILayout.BeginHorizontal();
     m_nPkgVersion = EditorGUILayout.IntField("包版本号", m_nPkgVersion);
     EditorGUILayout.EndHorizontal();
     if (GUILayout.Button("开始构建AssetBundle"))
     {
         BuildTarget buildTarget = m_arrBuildTarget[m_nBuildTargetIdx];
         if (AssetBundleBuildUtil.BuildAssetBundle(buildTarget, m_bUseMD5Name))
         {
             AssetVersionUtil.GenerateVersionInfoFile(m_nPkgVersion, PathConfig.BuildOuterAssetBundleRootDir(buildTarget));
             if (m_bOpenFolder)
             {
                 //打开包所在的文件夹
                 System.Diagnostics.Process.Start(PathConfig.BuildOuterAssetBundleRootDir(buildTarget));
             }
         }
         else
         {
             Debug.LogError("AssetBundle构建失败!");
         }
     }
     if (GUILayout.Button("打开bundle依赖查找窗口(工具)"))
     {
         AssetBundleBuildUtil.ClearAssetBundleNames();
         AssetBundleBuildUtil.SetAssetBundleName(m_bUseMD5Name);
         AssetBundleBrowser.AssetBundleBrowserMain.ShowWindow();
     }
 }
        private void OnGUI()
        {
            EditorGUILayout.BeginHorizontal();
            m_nBuildTargetIdx = EditorGUILayout.Popup("构建平台", m_nBuildTargetIdx, m_arrBuildTargetDesc);;
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.BeginHorizontal();
            m_bOpenFolder = EditorGUILayout.Toggle("构建完成后打开目录", m_bOpenFolder);
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.BeginHorizontal();
            m_bRebuildAssetBundle = EditorGUILayout.Toggle("是否重新打AssetBundle", m_bRebuildAssetBundle);
            EditorGUILayout.EndHorizontal();
            if (m_bRebuildAssetBundle)
            {
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.Space();
                m_bUseMD5Name = EditorGUILayout.Toggle("AssetBundle使用MD5名字", m_bUseMD5Name);
                EditorGUILayout.EndHorizontal();
            }
            EditorGUILayout.BeginHorizontal();
            m_nPkgVersion = EditorGUILayout.IntField("包版本号", m_nPkgVersion);
            EditorGUILayout.EndHorizontal();

            if (m_arrOption.Length > 0)
            {
                m_arrOptionState[0] = EditorGUILayout.BeginToggleGroup(m_arrOption[0].ToString(), m_arrOptionState[0]);
                for (int i = 1; i < m_arrOptionState.Length; i++)
                {
                    m_arrOptionState[i] = EditorGUILayout.Toggle(m_arrOption[i].ToString(), m_arrOptionState[i]);
                }
                EditorGUILayout.EndToggleGroup();
            }

            EditorGUILayout.BeginHorizontal();
            m_bDeleteAllOldPackage = EditorGUILayout.Toggle("删除所有旧包文件", m_bDeleteAllOldPackage);
            EditorGUILayout.EndHorizontal();

            if (GUILayout.Button("开始打包"))
            {
                BuildTarget buildTarget = m_arrBuildTarget[m_nBuildTargetIdx];
                if (m_bDeleteAllOldPackage)
                {
                    PathTools.RemoveDir(PathConfig.BuildPackageRootDir(buildTarget));
                }
                BuildOptions buildOptions = GetBuildOptions();
                Action <BuildTarget, BuildOptions> action = null;
                if (!m_dic.TryGetValue(buildTarget, out action))
                {
                    EditorUtility.DisplayDialog("提示", "打包失败,未找到" + buildTarget + "的打包方法", "确定");
                    return;
                }
                if (m_bRebuildAssetBundle)
                {
                    if (AssetBundleBuildUtil.BuildAssetBundle(buildTarget, m_bUseMD5Name))
                    {
                        AssetVersionUtil.GenerateVersionInfoFile(m_nPkgVersion, PathConfig.BuildOuterAssetBundleRootDir(buildTarget));
                        action.Invoke(buildTarget, buildOptions);
                    }
                    else
                    {
                        EditorUtility.DisplayDialog("提示", "AssetBundle构建失败!", "确定");
                        return;
                    }
                }
                else
                {
                    if (!Directory.Exists(PathConfig.BuildOuterAssetBundleRootDir(buildTarget)))
                    {
                        EditorUtility.DisplayDialog("提示", "打包失败,未找到AssetBundle目录" + PathConfig.BuildOuterAssetBundleRootDir(buildTarget), "确定");
                        return;
                    }
                    AssetVersionUtil.GenerateVersionInfoFile(m_nPkgVersion, PathConfig.BuildOuterAssetBundleRootDir(buildTarget));
                    action.Invoke(buildTarget, buildOptions);
                }

                if ((buildOptions & BuildOptions.AutoRunPlayer) == 0)
                {
                    //如果不是自动运行,打开包目录
                    //打开包所在的文件夹
                    System.Diagnostics.Process.Start(PathConfig.BuildPackageRootDir(buildTarget));
                }
                Debug.Log("打包成功");
            }
        }
 private void OnDisable()
 {
     AssetBundleBuildUtil.ClearAssetBundleNames();
 }