| | |
| | | /// </summary>
|
| | | static void CopyHalfAssetResources(string _assetBundlePath, string _streamingPath)
|
| | | {
|
| | | PriorBundleConfig.LazyInit();
|
| | |
|
| | | var fromFiles = new List<FileInfo>();
|
| | | FileExtersion.GetAllDirectoryFileInfos(_assetBundlePath, fromFiles);
|
| | |
|
| | | var excludeFileFullNames = new List<string>();
|
| | |
|
| | | // 剔除优先级低的hero资源
|
| | | var tempFiles = new List<FileInfo>();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/hero"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | PriorBundleConfig.InitForEditor(() =>
|
| | | {
|
| | | var fileName = Path.GetFileNameWithoutExtension(file.FullName);
|
| | | var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Mob, AssetVersionUtility.DecodeFileName(fileName));
|
| | | if (prior > AssetPrior)
|
| | | {
|
| | | excludeFileFullNames.Add(file.FullName);
|
| | | }
|
| | | }
|
| | | var fromFiles = new List<FileInfo>();
|
| | | FileExtersion.GetAllDirectoryFileInfos(_assetBundlePath, fromFiles);
|
| | |
|
| | | // 剔除优先级低的maps资源
|
| | | tempFiles.Clear();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/maps"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | var fileName = Path.GetFileNameWithoutExtension(file.FullName);
|
| | | var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Scene, AssetVersionUtility.DecodeFileName(fileName));
|
| | | if (prior > AssetPrior)
|
| | | {
|
| | | excludeFileFullNames.Add(file.FullName);
|
| | | }
|
| | | }
|
| | | var excludeFileFullNames = new List<string>();
|
| | |
|
| | | // 剔除优先级低的audio资源
|
| | | tempFiles.Clear();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/audio"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | var fileName = Path.GetFileNameWithoutExtension(file.FullName);
|
| | | var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Audio, AssetVersionUtility.DecodeFileName(fileName));
|
| | | if (prior > AssetPrior)
|
| | | {
|
| | | excludeFileFullNames.Add(file.FullName);
|
| | | }
|
| | | }
|
| | |
|
| | | // 剔除优先级低的uieffect资源
|
| | | tempFiles.Clear();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/uieffect"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | var fileName = Path.GetFileNameWithoutExtension(file.FullName);
|
| | | var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Effect, AssetVersionUtility.DecodeFileName(fileName));
|
| | | if (prior > AssetPrior)
|
| | | {
|
| | | excludeFileFullNames.Add(file.FullName);
|
| | | }
|
| | | }
|
| | |
|
| | | // 剔除视频资源
|
| | | tempFiles.Clear();
|
| | | var videoPath = StringUtility.Concat(_assetBundlePath, "/video");
|
| | | if (Directory.Exists(videoPath))
|
| | | {
|
| | | FileExtersion.GetAllDirectoryFileInfos(videoPath, tempFiles);
|
| | | // 剔除优先级低的hero资源
|
| | | var tempFiles = new List<FileInfo>();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/hero"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | var fileName = Path.GetFileNameWithoutExtension(file.FullName);
|
| | | var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Video, AssetVersionUtility.DecodeFileName(fileName));
|
| | | var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Mob, AssetVersionUtility.DecodeFileName(fileName));
|
| | | if (prior > AssetPrior)
|
| | | {
|
| | | excludeFileFullNames.Add(file.FullName);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | // 剔除表资源
|
| | | if (!includeConfig)
|
| | | {
|
| | | // 剔除优先级低的maps资源
|
| | | tempFiles.Clear();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/config"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | excludeFileFullNames.Add(file.FullName);
|
| | | }
|
| | | }
|
| | |
|
| | | // 剔除UI资源
|
| | | if (!includeUI)
|
| | | {
|
| | | tempFiles.Clear();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/ui"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | excludeFileFullNames.Add(file.FullName);
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | tempFiles.Clear();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/ui"), tempFiles);
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/maps"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | var fileName = Path.GetFileNameWithoutExtension(file.FullName);
|
| | | var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.UI, fileName);
|
| | | var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Scene, AssetVersionUtility.DecodeFileName(fileName));
|
| | | if (prior > AssetPrior)
|
| | | {
|
| | | excludeFileFullNames.Add(file.FullName);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | // 从文件列表中移除需要排除的文件
|
| | | for (int i = fromFiles.Count - 1; i >= 0; i--)
|
| | | {
|
| | | if (excludeFileFullNames.Contains(fromFiles[i].FullName))
|
| | | // 剔除优先级低的audio资源
|
| | | tempFiles.Clear();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/audio"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | fromFiles.RemoveAt(i);
|
| | | var fileName = Path.GetFileNameWithoutExtension(file.FullName);
|
| | | var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Audio, AssetVersionUtility.DecodeFileName(fileName));
|
| | | if (prior > AssetPrior)
|
| | | {
|
| | | excludeFileFullNames.Add(file.FullName);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | foreach (var item in fromFiles)
|
| | | {
|
| | | var extension = Path.GetExtension(item.FullName);
|
| | | if (extension == ".meta")
|
| | | continue;
|
| | | // 剔除优先级低的uieffect资源
|
| | | tempFiles.Clear();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/uieffect"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | var fileName = Path.GetFileNameWithoutExtension(file.FullName);
|
| | | var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Effect, AssetVersionUtility.DecodeFileName(fileName));
|
| | | if (prior > AssetPrior)
|
| | | {
|
| | | excludeFileFullNames.Add(file.FullName);
|
| | | }
|
| | | }
|
| | |
|
| | | var relativePath = FileExtersion.GetFileRelativePath(_assetBundlePath, item.FullName);
|
| | | if (relativePath.StartsWith("patch"))
|
| | | continue;
|
| | | // 剔除视频资源
|
| | | tempFiles.Clear();
|
| | | var videoPath = StringUtility.Concat(_assetBundlePath, "/video");
|
| | | if (Directory.Exists(videoPath))
|
| | | {
|
| | | FileExtersion.GetAllDirectoryFileInfos(videoPath, tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | var fileName = Path.GetFileNameWithoutExtension(file.FullName);
|
| | | var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Video, AssetVersionUtility.DecodeFileName(fileName));
|
| | | if (prior > AssetPrior)
|
| | | {
|
| | | excludeFileFullNames.Add(file.FullName);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | var to = StringUtility.Concat(_streamingPath, relativePath);
|
| | | var directory = Path.GetDirectoryName(to);
|
| | | if (!Directory.Exists(directory))
|
| | | Directory.CreateDirectory(directory);
|
| | | // 剔除表资源
|
| | | if (!includeConfig)
|
| | | {
|
| | | tempFiles.Clear();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/config"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | excludeFileFullNames.Add(file.FullName);
|
| | | }
|
| | | }
|
| | |
|
| | | File.Copy(item.FullName, to, true);
|
| | | }
|
| | | // 剔除UI资源
|
| | | if (!includeUI)
|
| | | {
|
| | | tempFiles.Clear();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/ui"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | excludeFileFullNames.Add(file.FullName);
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | tempFiles.Clear();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/ui"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | var fileName = Path.GetFileNameWithoutExtension(file.FullName);
|
| | | var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.UI, fileName);
|
| | | if (prior > AssetPrior)
|
| | | {
|
| | | excludeFileFullNames.Add(file.FullName);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | // 从文件列表中移除需要排除的文件
|
| | | for (int i = fromFiles.Count - 1; i >= 0; i--)
|
| | | {
|
| | | if (excludeFileFullNames.Contains(fromFiles[i].FullName))
|
| | | {
|
| | | fromFiles.RemoveAt(i);
|
| | | }
|
| | | }
|
| | |
|
| | | foreach (var item in fromFiles)
|
| | | {
|
| | | var extension = Path.GetExtension(item.FullName);
|
| | | if (extension == ".meta")
|
| | | continue;
|
| | |
|
| | | var relativePath = FileExtersion.GetFileRelativePath(_assetBundlePath, item.FullName);
|
| | | if (relativePath.StartsWith("patch"))
|
| | | continue;
|
| | |
|
| | | var to = StringUtility.Concat(_streamingPath, relativePath);
|
| | | var directory = Path.GetDirectoryName(to);
|
| | | if (!Directory.Exists(directory))
|
| | | Directory.CreateDirectory(directory);
|
| | |
|
| | | File.Copy(item.FullName, to, true);
|
| | | }
|
| | | });
|
| | |
|
| | | |
| | | }
|
| | |
|
| | | /// <summary>
|