12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- using System;
- using System.IO;
- using System.Linq;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEditor;
- namespace YooAsset.Editor
- {
- [TaskAttribute("获取资源构建内容")]
- public class TaskGetBuildMap : IBuildTask
- {
- void IBuildTask.Run(BuildContext context)
- {
- var buildParametersContext = context.GetContextObject<BuildParametersContext>();
- var buildMapContext = BuildMapCreater.CreateBuildMap(buildParametersContext.Parameters.BuildMode);
- context.SetContextObject(buildMapContext);
- BuildRunner.Log("构建内容准备完毕!");
- // 检测构建结果
- CheckBuildMapContent(buildMapContext);
- }
- /// <summary>
- /// 检测构建结果
- /// </summary>
- private void CheckBuildMapContent(BuildMapContext buildMapContext)
- {
- foreach (var bundleInfo in buildMapContext.BundleInfos)
- {
- // 注意:原生文件资源包只能包含一个原生文件
- bool isRawFile = bundleInfo.IsRawFile;
- if (isRawFile)
- {
- if (bundleInfo.BuildinAssets.Count != 1)
- throw new Exception($"The bundle does not support multiple raw asset : {bundleInfo.BundleName}");
- continue;
- }
- // 注意:原生文件不能被其它资源文件依赖
- foreach (var assetInfo in bundleInfo.BuildinAssets)
- {
- if (assetInfo.AllDependAssetInfos != null)
- {
- foreach (var dependAssetInfo in assetInfo.AllDependAssetInfos)
- {
- if (dependAssetInfo.IsRawAsset)
- throw new Exception($"{assetInfo.AssetPath} can not depend raw asset : {dependAssetInfo.AssetPath}");
- }
- }
- }
- }
- }
- }
- }
|