update asset bundle builder

优化资源包引用关系计算效率。
This commit is contained in:
hevinci
2023-02-27 18:11:51 +08:00
parent bcf6372602
commit 365ed560f6
17 changed files with 173 additions and 107 deletions

View File

@@ -2,13 +2,19 @@
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
using System.Diagnostics;
using UnityEngine;
namespace YooAsset.Editor
{
public class BuildRunner
{
public static bool EnableLog = true;
private static Stopwatch _buildWatch;
/// <summary>
/// 总耗时
/// </summary>
public static int TotalSeconds = 0;
/// <summary>
/// 执行构建流程
@@ -23,14 +29,22 @@ namespace YooAsset.Editor
BuildResult buildResult = new BuildResult();
buildResult.Success = true;
TotalSeconds = 0;
for (int i = 0; i < pipeline.Count; i++)
{
IBuildTask task = pipeline[i];
try
{
_buildWatch = Stopwatch.StartNew();
var taskAttribute = task.GetType().GetCustomAttribute<TaskAttribute>();
Log($"---------------------------------------->{taskAttribute.Desc}<---------------------------------------");
BuildLogger.Log($"---------------------------------------->{taskAttribute.Desc}<---------------------------------------");
task.Run(context);
_buildWatch.Stop();
// 统计耗时
int seconds = GetBuildSeconds();
TotalSeconds += seconds;
BuildLogger.Log($"{taskAttribute.Desc}耗时:{seconds}秒");
}
catch (Exception e)
{
@@ -42,26 +56,14 @@ namespace YooAsset.Editor
}
// 返回运行结果
BuildLogger.Log($"构建过程总计耗时:{TotalSeconds}秒");
return buildResult;
}
/// <summary>
/// 日志输出
/// </summary>
public static void Log(string info)
private static int GetBuildSeconds()
{
if (EnableLog)
{
UnityEngine.Debug.Log(info);
}
}
/// <summary>
/// 日志输出
/// </summary>
public static void Info(string info)
{
UnityEngine.Debug.Log(info);
float seconds = _buildWatch.ElapsedMilliseconds / 1000f;
return (int)seconds;
}
}
}