Пример #1
0
        void OnGUI()
        {
            #region 打包资源
            version = EditorGUILayout.TextField("资源版本号:", version, GUILayout.Width(200));
            EditorGUILayout.Space();
            EditorGUILayout.Space();
            android = EditorGUILayout.Toggle("安卓:", android);
            ios     = EditorGUILayout.Toggle("IOS:", ios);
            pc      = EditorGUILayout.Toggle("pc:", pc);
            if (GUILayout.Button("打包资源"))
            {
                if (lastVersion == version)
                {
                    Debugger.Log("版本号相同!");
                }
                if (HotKey.FindWhiteSpaceCharacterCountInName() > 0)
                {
                    Debugger.LogError("有空格名字!");
                    return;
                }
                ProjectBuilder.ProjectGitPull();
                if (android)
                {
                    ProjectBuilder.BuildAssetBundleForAndroid(version);
                }
                if (ios)
                {
                    ProjectBuilder.BuildAssetBundleForIOS(version);
                }
                if (pc)
                {
                    ProjectBuilder.BuildAssetBundleForPC(version);
                }
                this.Close();
            }
            #endregion

            #region 发布
            androidPlayer = EditorGUILayout.Toggle("安卓:", androidPlayer);
            iosPlayer     = EditorGUILayout.Toggle("IOS:", iosPlayer);
            delFiles      = EditorGUILayout.Toggle("是否删除资源文件:", delFiles);
            if (androidPlayer)
            {
                androidProject = EditorGUILayout.Toggle("发布安卓工程:", androidProject);
                EditorGUILayout.Space();
                VersionUtil.IsDebug = EditorGUILayout.Toggle("不提交Git", VersionUtil.IsDebug);
                EditorGUILayout.Space();
                //platformType = (PlatformType)EditorGUILayout.EnumPopup("发布平台", platformType, GUILayout.Width(300));
                if (androidProject)
                {
                    int i = 0;
                    foreach (PlatformType p in platformTypeArray)
                    {
                        if (p == PlatformType.None)
                        {
                            continue;
                        }
                        platformTypeFlags[i] = EditorGUILayout.Toggle(p.ToString() + ":", platformTypeFlags[i]);
                        if (platformTypeFlags[i])
                        {
                            if (!platformTypes.Contains(p))
                            {
                                platformTypes.Add(p);
                            }
                        }
                        else
                        {
                            if (platformTypes.Contains(p))
                            {
                                platformTypes.Remove(p);
                            }
                        }
                        i++;
                    }
                }
            }
            GUILayout.BeginHorizontal();
            if (GUILayout.Button("发布"))
            {
                //VersionUtil.IsDebug = false;
                if (androidPlayer)
                {
                    if (androidProject)
                    {
                        foreach (var p in platformTypes)
                        {
                            ProjectBuilder.BuildAndroid(delFiles, androidProject, p);
                        }
                    }
                    else
                    {
                        ProjectBuilder.BuildAndroid(delFiles, false);
                    }
                }
                if (iosPlayer)
                {
                    ProjectBuilder.BuildIOS(delFiles);
                }
                this.Close();
            }
            if (GUILayout.Button("debug打包(不git操作)", GUILayout.Width(256)))
            {
                VersionUtil.IsDebug = true;
                if (androidPlayer)
                {
                    if (androidProject)
                    {
                        foreach (var p in platformTypes)
                        {
                            ProjectBuilder.BuildAndroid(delFiles, androidProject, p);
                        }
                    }
                    else
                    {
                        ProjectBuilder.BuildAndroid(delFiles, false);
                    }
                }
                if (iosPlayer)
                {
                    ProjectBuilder.BuildIOS(delFiles);
                }
                this.Close();
            }
            GUILayout.EndHorizontal();
            //if (androidPlayer)
            //{
            //    if ((GUILayout.Button("CopyCSV&Lua2AndroidAssets")))
            //    {
            //        if (androidProject)
            //        {
            //            foreach (var p in platformTypes)
            //            {
            //                ProjectBuilder.Copy2AndroidAssets(p);
            //            }
            //            VersionUtil.AddGit(ProjectBuilder.androidProjectPath);
            //            VersionUtil.CommitGit(ProjectBuilder.androidProjectPath, "CopyCSV&Lua2AndroidAssets");
            //            VersionUtil.PullGit(ProjectBuilder.androidProjectPath);
            //            VersionUtil.PushGit(ProjectBuilder.androidProjectPath);
            //            Debugger.Log("git:push to git server success!");
            //            this.Close();
            //        }
            //    }
            //}

            string copyZipFileButtonName = androidPlayer ? "CopyCSV&LuaZip2StreamingAssets[Android]" : "CopyCSV&LuaZip2StreamingAssets[iOS]";

            if ((GUILayout.Button(copyZipFileButtonName)))
            {
                ProjectBuilder.Copy2StreamingAssetsPath(androidPlayer);
                Debugger.Log("CopyCSV&LuaZip2StreamingAssets success!");
                this.Close();
            }

            #endregion

            #region 生成配置文件
            EditorGUILayout.Space();
            if (GUILayout.Button("pull res"))
            {
                ProjectBuilder.ResGitPull();
            }
            EditorGUILayout.LabelField("生成配置文件的MD5信息,并保存到文件");
            EditorGUILayout.BeginHorizontal();
            csvIndex = EditorGUILayout.Popup("csv版本列表:", csvIndex, csvVersions, GUILayout.Width(300));
            if (GUILayout.Button("new", GUILayout.Width(200)))
            {
                newCSVVersion = true;
                string   v          = csvVersions[0];
                string[] subVersion = v.ToArray('.');
                int      numVersion = int.Parse(subVersion[2]);
                numVersion++;
                csvVersion = subVersion[0] + "." + subVersion[1] + "." + numVersion;
            }
            EditorGUILayout.EndHorizontal();
            if (!newCSVVersion)
            {
                csvVersion = csvVersions[csvIndex];
            }
            csvVersion    = EditorGUILayout.TextField("配置文件版本号:", csvVersion, GUILayout.Width(200));
            csvGitMessage = EditorGUILayout.TextField("git message(allow empty):", csvGitMessage);
            EditorGUILayout.Space();
            VersionUtil.IsDebug = EditorGUILayout.Toggle("不提交Git", VersionUtil.IsDebug);
            EditorGUILayout.Space();
            if (GUILayout.Button("生成配置文件MD5文件"))
            {
                ProjectBuilder.BuildCSV(csvVersion, csvGitMessage);
                this.Close();
            }
            #endregion

            #region 生成Lua文件
            EditorGUILayout.Space();
            EditorGUILayout.LabelField("生成Lua文件的MD5信息,并保存到文件");
            EditorGUILayout.BeginHorizontal();
            luaIndex = EditorGUILayout.Popup("lua版本列表:", luaIndex, luaVersions, GUILayout.Width(300));
            if (GUILayout.Button("new", GUILayout.Width(200)))
            {
                newLuaVersion = true;
                string   v          = luaVersions[0];
                string[] subVersion = v.ToArray('.');
                int      numVersion = int.Parse(subVersion[2]);
                numVersion++;
                luaVersion = subVersion[0] + "." + subVersion[1] + "." + numVersion;
            }
            EditorGUILayout.EndHorizontal();
            if (!newLuaVersion)
            {
                luaVersion = luaVersions[luaIndex];
            }
            luaVersion    = EditorGUILayout.TextField("lua版本号:", luaVersion, GUILayout.Width(200));
            luaGitMessage = EditorGUILayout.TextField("git message(allow empty):", luaGitMessage);
            luaEncrypt    = EditorGUILayout.Toggle("lua加密:", luaEncrypt);
            EditorGUILayout.Space();
            VersionUtil.IsDebug = EditorGUILayout.Toggle("不提交Git", VersionUtil.IsDebug);
            EditorGUILayout.Space();
            if (GUILayout.Button("生成Lua文件MD5文件"))
            {
                ProjectBuilder.BuildLua(luaVersion, luaGitMessage, luaEncrypt);
                this.Close();
            }
            #endregion
        }