using System;
|
using System.Collections.Generic;
|
using System.IO;
|
using Cysharp.Threading.Tasks;
|
using UnityEngine;
|
|
public class CheckAssetValidTask : LaunchTask
|
{
|
public override float expectTime
|
{
|
get { return LocalSave.GetFloat("CheckAssetValidTask_ExpectTime", 3f); }
|
protected set { LocalSave.SetFloat("CheckAssetValidTask_ExpectTime", value); }
|
}
|
|
public override void Begin()
|
{
|
LaunchInHot.m_CurrentStage = LaunchStage.CheckAsset;
|
duration = Mathf.Max(0.5f, expectTime);
|
|
ServerListCenter.Instance.RequestJumpUrl().Forget();
|
|
// TODO YYL
|
// OperationLogCollect.Instance.RecordLauchEvent(2);
|
// OperationLogCollect.Instance.RecordEvent(2);
|
|
VersionConfig.GetAsync().ContinueWith(config =>
|
{
|
if (VersionUtility.Instance.NeedDownAsset())
|
{
|
done = false;
|
progress = 0f;
|
// 通过 YooAsset(ConfigManager)加载配置,不再走旧的 HTTP 下载
|
LoadConfigsViaYooAsset().Forget();
|
}
|
else
|
{
|
done = true;
|
}
|
}).Forget();
|
}
|
|
private async UniTaskVoid LoadConfigsViaYooAsset()
|
{
|
try
|
{
|
// 并行加载 PriorBundle 和 OPConfig(通过 YooAsset / ConfigManager)
|
var t1 = PriorBundleConfig.LazyInitAsync();
|
var t2 = OPConfigConfig.LazyInitAsync();
|
await UniTask.WhenAll(t1, t2);
|
Debug.Log("[CheckAssetValidTask] PriorBundle 和 OPConfig 通过 YooAsset 加载完成");
|
|
// YooAsset 已在 Launch 阶段完成资源版本检查和下载
|
// 不再需要旧的 AssetsVersion.txt 下载 + 文件校验流程
|
AssetVersionUtility.ForceCompleteCheck();
|
}
|
catch (Exception ex)
|
{
|
Debug.LogError($"[CheckAssetValidTask] YooAsset 加载配置失败: {ex}");
|
AssetVersionUtility.ForceCompleteCheck();
|
}
|
}
|
|
public override void End()
|
{
|
expectTime = timer;
|
Debug.LogFormat("{0}执行时长:{1};", this.GetType().Name, timer);
|
|
GameNotice.OpenGameNotice();
|
OperationLogCollect.Instance.RecordLauchEvent(13);
|
}
|
|
public override void Update()
|
{
|
if (done)
|
{
|
return;
|
}
|
|
timer += Time.deltaTime;
|
if (!AssetVersionUtility.checkAssetCompleted)
|
{
|
done = false;
|
progress = timer / expectTime;
|
}
|
else
|
{
|
done = true;
|
}
|
|
ExceptionReport();
|
}
|
}
|