Example #1
0
 /// <summary>
 /// AssetBuilder
 /// </summary>
 /// <param name="buildTarget">构建平台</param>
 /// <param name="buildVersion">构建版本</param>
 public AssetBundleBuilder(BuildTarget buildTarget, int buildVersion)
 {
     _outputRoot     = AssetBundleBuilderHelper.GetDefaultOutputRootPath();
     BuildTarget     = buildTarget;
     BuildVersion    = buildVersion;
     OutputDirectory = GetOutputDirectory();
 }
Example #2
0
        /// <summary>
        /// 刷新输出目录
        /// </summary>
        private void RefreshOutputMainFolder()
        {
            string outputDirectory = _assetBuilder.OutputDirectory;

            EditorTools.ClearFolder(outputDirectory);

            string outputRoot = AssetBundleBuilderHelper.GetDefaultOutputRootPath();

            AssetBundleBuilderHelper.CopyPackageToUnityManifestFolder(_assetBuilder.BuildTarget, outputRoot);
        }
Example #3
0
        /// <summary>
        /// 刷新流目录
        /// </summary>
        private void RefreshStreammingFolder()
        {
            string streamingDirectory = Application.dataPath + "/StreamingAssets";

            EditorTools.ClearFolder(streamingDirectory);

            string outputRoot = AssetBundleBuilderHelper.GetDefaultOutputRootPath();

            AssetBundleBuilderHelper.CopyPackageToStreamingFolder(_assetBuilder.BuildTarget, outputRoot);
        }
Example #4
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();
        }
Example #5
0
        /// <summary>
        /// 执行构建
        /// </summary>
        private void ExecuteBuild()
        {
            string defaultOutputRoot = AssetBundleBuilderHelper.GetDefaultOutputRootPath();

            AssetBundleBuilder.BuildParameters buildParameters = new AssetBundleBuilder.BuildParameters();
            buildParameters.OutputRoot     = defaultOutputRoot;
            buildParameters.BuildTarget    = BuildTarget;
            buildParameters.BuildVersion   = BuildVersion;
            buildParameters.CompressOption = CompressOption;
            buildParameters.IsForceRebuild = IsForceRebuild;
            _assetBuilder.Run(buildParameters);
        }