Exemple #1
0
        private void OnGUI()
        {
            // 初始化
            InitInternal();

            // 标题
            EditorGUILayout.LabelField("Build setup", _centerStyle);
            EditorGUILayout.Space();

            // 输出路径
            string defaultOutputRoot = AssetBundleBuilderHelper.GetDefaultOutputRootPath();
            string outputDirectory   = AssetBundleBuilder.MakeOutputDirectory(defaultOutputRoot, BuildTarget);

            EditorGUILayout.LabelField("Build Output", outputDirectory);

            BuildVersion   = EditorGUILayout.IntField("Build Version", BuildVersion, GUILayout.MaxWidth(250));
            CompressOption = (ECompressOption)EditorGUILayout.EnumPopup("Compression", CompressOption, GUILayout.MaxWidth(250));
            IsForceRebuild = GUILayout.Toggle(IsForceRebuild, "Froce Rebuild", GUILayout.MaxWidth(120));

            // 构建按钮
            EditorGUILayout.Space();
            if (GUILayout.Button("Build", GUILayout.MaxHeight(40)))
            {
                string title;
                string content;
                if (IsForceRebuild)
                {
                    title   = "警告";
                    content = "确定开始强制构建吗,这样会删除所有已有构建的文件";
                }
                else
                {
                    title   = "提示";
                    content = "确定开始增量构建吗";
                }
                if (EditorUtility.DisplayDialog(title, content, "Yes", "No"))
                {
                    // 清空控制台
                    EditorTools.ClearUnityConsole();

                    // 存储配置
                    SaveSettingsToPlayerPrefs();

                    EditorApplication.delayCall += ExecuteBuild;
                }
                else
                {
                    Debug.LogWarning("[Build] 打包已经取消");
                }
            }

            // 绘制工具栏部分
            OnDrawGUITools();
        }
Exemple #2
0
        private void OnGUI()
        {
            // 初始化
            InitInternal();

            // 标题
            EditorGUILayout.LabelField("Build setup", _centerStyle);
            EditorGUILayout.Space();

            // 构建版本
            _assetBuilder.BuildVersion = EditorGUILayout.IntField("Build Version", _assetBuilder.BuildVersion, GUILayout.MaxWidth(250));

            // 输出路径
            EditorGUILayout.LabelField("Build Output", _assetBuilder.OutputDirectory);

            // 构建选项
            EditorGUILayout.Space();
            _assetBuilder.IsForceRebuild = GUILayout.Toggle(_assetBuilder.IsForceRebuild, "Froce Rebuild", GUILayout.MaxWidth(120));

            // 高级选项
            using (new EditorGUI.DisabledScope(false))
            {
                EditorGUILayout.Space();
                _showSettingFoldout = EditorGUILayout.Foldout(_showSettingFoldout, "Advanced Settings");
                if (_showSettingFoldout)
                {
                    int indent = EditorGUI.indentLevel;
                    EditorGUI.indentLevel                 = 1;
                    _assetBuilder.CompressOption          = (AssetBundleBuilder.ECompressOption)EditorGUILayout.EnumPopup("Compression", _assetBuilder.CompressOption);
                    _assetBuilder.IsAppendHash            = EditorGUILayout.ToggleLeft("Append Hash", _assetBuilder.IsAppendHash, GUILayout.MaxWidth(120));
                    _assetBuilder.IsDisableWriteTypeTree  = EditorGUILayout.ToggleLeft("Disable Write Type Tree", _assetBuilder.IsDisableWriteTypeTree, GUILayout.MaxWidth(200));
                    _assetBuilder.IsIgnoreTypeTreeChanges = EditorGUILayout.ToggleLeft("Ignore Type Tree Changes", _assetBuilder.IsIgnoreTypeTreeChanges, GUILayout.MaxWidth(200));
                    EditorGUI.indentLevel                 = indent;
                }
            }

            // 构建按钮
            EditorGUILayout.Space();
            if (GUILayout.Button("Build", GUILayout.MaxHeight(40)))
            {
                string title;
                string content;
                if (_assetBuilder.IsForceRebuild)
                {
                    title   = "警告";
                    content = "确定开始强制构建吗,这样会删除所有已有构建的文件";
                }
                else
                {
                    title   = "提示";
                    content = "确定开始增量构建吗";
                }
                if (EditorUtility.DisplayDialog(title, content, "Yes", "No"))
                {
                    // 清空控制台
                    EditorTools.ClearUnityConsole();

                    // 存储配置
                    SaveSettingsToPlayerPrefs(_assetBuilder);

                    EditorApplication.delayCall += ExecuteBuild;
                }
                else
                {
                    Debug.LogWarning("[Build] 打包已经取消");
                }
            }

            // 绘制工具栏部分
            OnDrawGUITools();
        }