#if UNITY_2019_4_OR_NEWER using System; using System.IO; using System.Linq; using System.Collections.Generic; using UnityEditor; using UnityEngine; using UnityEditor.UIElements; using UnityEngine.UIElements; namespace YooAsset.Editor { internal class RawfileBuildpipelineViewer : BuildPipelineViewerBase { public RawfileBuildpipelineViewer(string packageName, BuildTarget buildTarget, VisualElement parent) : base(packageName, EBuildPipeline.RawFileBuildPipeline, buildTarget, parent) { var compressionField = Root.Q("Compression"); UIElementsTools.SetElementVisible(compressionField, false); } /// /// 执行构建 /// protected override void ExecuteBuild() { var fileNameStyle = AssetBundleBuilderSetting.GetPackageFileNameStyle(PackageName, BuildPipeline); var buildinFileCopyOption = AssetBundleBuilderSetting.GetPackageBuildinFileCopyOption(PackageName, BuildPipeline); var buildinFileCopyParams = AssetBundleBuilderSetting.GetPackageBuildinFileCopyParams(PackageName, BuildPipeline); var clearBuildCache = AssetBundleBuilderSetting.GetPackageClearBuildCache(PackageName, BuildPipeline); var useAssetDependencyDB = AssetBundleBuilderSetting.GetPackageUseAssetDependencyDB(PackageName, BuildPipeline); RawFileBuildParameters buildParameters = new RawFileBuildParameters(); buildParameters.BuildOutputRoot = AssetBundleBuilderHelper.GetDefaultBuildOutputRoot(); buildParameters.BuildinFileRoot = AssetBundleBuilderHelper.GetStreamingAssetsRoot(); buildParameters.BuildPipeline = BuildPipeline.ToString(); buildParameters.BuildBundleType = (int)EBuildBundleType.RawBundle; buildParameters.BuildTarget = BuildTarget; buildParameters.PackageName = PackageName; buildParameters.PackageVersion = GetPackageVersion(); buildParameters.VerifyBuildingResult = true; buildParameters.FileNameStyle = fileNameStyle; buildParameters.BuildinFileCopyOption = buildinFileCopyOption; buildParameters.BuildinFileCopyParams = buildinFileCopyParams; buildParameters.ClearBuildCacheFiles = clearBuildCache; buildParameters.UseAssetDependencyDB = useAssetDependencyDB; buildParameters.EncryptionServices = CreateEncryptionInstance(); RawFileBuildPipeline pipeline = new RawFileBuildPipeline(); var buildResult = pipeline.Run(buildParameters, true); if (buildResult.Success) EditorUtility.RevealInFinder(buildResult.OutputPackageDirectory); } } } #endif