using System;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
using UnityEngine;
namespace YooAsset.Editor
{
public class BuildRunner
{
public static bool EnableLog = true;
///
/// 执行构建流程
///
/// 如果成功返回TRUE,否则返回FALSE
public static BuildResult Run(List pipeline, BuildContext context)
{
if (pipeline == null)
throw new ArgumentNullException("pipeline");
if (context == null)
throw new ArgumentNullException("context");
BuildResult buildResult = new BuildResult();
buildResult.Success = true;
for (int i = 0; i < pipeline.Count; i++)
{
IBuildTask task = pipeline[i];
try
{
var taskAttribute = task.GetType().GetCustomAttribute();
Log($"---------------------------------------->{taskAttribute.Desc}<---------------------------------------");
task.Run(context);
}
catch (Exception e)
{
buildResult.FailedTask = task.GetType().Name;
buildResult.FailedInfo = e.ToString();
buildResult.Success = false;
break;
}
}
// 返回运行结果
return buildResult;
}
///
/// 日志输出
///
public static void Log(string info)
{
if (EnableLog)
{
UnityEngine.Debug.Log(info);
}
}
///
/// 日志输出
///
public static void Info(string info)
{
UnityEngine.Debug.Log(info);
}
}
}