using System;
using Cysharp.Threading.Tasks;
using AlicizaX;
using UnityEngine;
using YooAsset;
namespace Unity.Startup.Procedure
{
///
/// 获取版本信息
///
public sealed class ProcedureGetAppVersionInfoState : ProcedureBase
{
private const int MaxTryCount = 3;
private int currentTryCount;
protected override void OnEnter()
{
base.OnEnter();
GetAppVersionInfo();
}
private async void GetAppVersionInfo()
{
try
{
currentTryCount++;
if (StartupSetting.Version != AppVersion.GameVersion)
{
Log.Warning($"Version inconsistency : {AppVersion.GameVersion}->{StartupSetting.Version} ");
#if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;
#else
Utility.Platform.OpenURL(StartupSetting.AppDownloadUrl);
Utility.Platform.Quit();
#endif
return;
}
SwitchProcedure();
}
catch (Exception e)
{
Log.Exception(e);
currentTryCount++;
if (currentTryCount <= MaxTryCount)
{
await UniTask.Delay(3000);
GetAppVersionInfo();
}
}
}
}
}