mirror of https://github.com/tuyoogame/YooAsset
55 lines
1.6 KiB
C#
55 lines
1.6 KiB
C#
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, buildParametersContext.Parameters.PackageName);
|
|
context.SetContextObject(buildMapContext);
|
|
BuildLogger.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}");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |