void OnGUI()
        {
            scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.Width(500), GUILayout.Height(400));
            GUILayout.BeginVertical();
            GUILayout.BeginHorizontal();
            GUILayout.Label("PersistanePath:");
            GUILayout.TextField(Application.persistentDataPath);
            GUILayout.EndHorizontal();
            if (GUILayout.Button("Go To Persistance"))
            {
                EditorUtility.RevealInFinder(Application.persistentDataPath);
            }

            DrawMenu();
            DrawAssetBundleList();

            isEnableGenerateClass = GUILayout.Toggle(isEnableGenerateClass, "auto generate class");



            GUILayout.BeginHorizontal();
            GUILayout.Label("ResVersion:");
            resVersion = GUILayout.TextField(resVersion);
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Project Tag:");
            projectTag = GUILayout.TextField(projectTag);

            GUILayout.EndHorizontal();

            if (GUILayout.Button("1.Gen Res Tree File"))
            {
                AssetBundleExporter.BuildDataTable();
            }

            if (GUILayout.Button("2.Build"))
            {
                AssetBundleExporter.BuildDataTable();
                BuildWithTarget(EditorUserBuildSettings.activeBuildTarget);
            }

            if (GUILayout.Button("ForceClear"))
            {
                ForceClear();
            }

            GUILayout.EndVertical();
            GUILayout.Space(50);

            EditorGUILayout.EndScrollView();
        }
        public static void BuildAssetBundles(BuildTarget buildTarget, string inputProjectTag)
        {
            if (string.IsNullOrEmpty(inputProjectTag))
            {
                projectTag = "putaogame";
            }
            else
            {
                projectTag = inputProjectTag;
            }
            SetProjectTag();

            // Choose the output path according to the build target.
            string outputPath = Path.Combine(QAssetBundleTool.AssetBundlesOutputPath, GetPlatformName());

            outputPath = outputPath + "/" + projectTag;

            IOUtils.CreateDirIfNotExists(outputPath);

            BuildPipeline.BuildAssetBundles(outputPath, BuildAssetBundleOptions.ChunkBasedCompression, buildTarget);

            List <string> finalzips  = PackZips(outputPath);
            List <string> finalFiles = PackQFiles(outputPath);

            GenerateVersionConfig(outputPath, finalzips, finalFiles);

            string finalDir = Application.streamingAssetsPath + "/AssetBundles/" + GetPlatformName() + "/" + projectTag;

            IOUtils.DeleteDirIfExists(finalDir);

            IOUtils.CreateDirIfNotExists(finalDir);

            FileUtil.ReplaceDirectory(outputPath, finalDir);

            AssetBundleExporter.BuildDataTable();

            AssetDatabase.Refresh();
        }