Files
Fishing2NetTest/Assets/Scripts/NBC/Asset/Editor/Builder/Tasks/GenVersionDataTask.cs
2026-03-05 18:07:55 +08:00

48 lines
1.7 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
namespace NBC.Asset.Editor
{
[Id(TaskId.GenVersionData)]
public class GenVersionDataTask : BuildTask
{
private BuildContext _context;
public override void Run(BuildContext context)
{
_context = context;
BuildVersionData();
}
private void BuildVersionData()
{
VersionData versionData = new VersionData();
var versionPackageData = new VersionPackageData();
var packages = CollectorSetting.Instance.Packages;
// Dictionary<string, PackageTempData> dictionary = new Dictionary<string, PackageTempData>();
foreach (var package in packages)
{
var packPath = BuildSettings.GetCachePath($"{package.Name}.json");
var buildPackage = Util.ReadJson<BuildPackage>(packPath);
if (buildPackage != null)
{
var packageData = buildPackage.ToPackagesData();
versionPackageData.Packages.Add(packageData);
}
}
var versionPackagesPath = BuildSettings.GetCachePath("packages.json");
Util.WriteJson(versionPackageData, versionPackagesPath);
versionData.Hash = Util.ComputeHash(versionPackagesPath);
versionData.Size = Util.GetFileSize(versionPackagesPath);
var versionSavePath = BuildSettings.GetCachePath(Const.VersionFileName);
versionData.AppVer = UnityEditor.PlayerSettings.bundleVersion;
versionData.BuildTime = DateTimeOffset.Now.ToUnixTimeSeconds();
Util.WriteJson(versionData, versionSavePath);
}
}
}