com.alicizax.unity.tuyoogam.../Runtime/FileSystem/Operation/FSDownloadFileOperation.cs

93 lines
2.2 KiB
C#
Raw Normal View History

2025-01-09 11:31:04 +08:00

namespace YooAsset
{
2025-05-13 10:40:30 +08:00
internal class DownloadFileOptions
{
/// <summary>
/// 失败后重试次数
/// </summary>
public readonly int FailedTryAgain;
/// <summary>
/// 超时时间
/// </summary>
public readonly int Timeout;
/// <summary>
/// 主资源地址
/// </summary>
public string MainURL { set; get; }
/// <summary>
/// 备用资源地址
/// </summary>
public string FallbackURL { set; get; }
/// <summary>
/// 导入的本地文件路径
/// </summary>
public string ImportFilePath { set; get; }
public DownloadFileOptions(int failedTryAgain, int timeout)
{
FailedTryAgain = failedTryAgain;
Timeout = timeout;
}
}
2025-01-09 11:31:04 +08:00
internal abstract class FSDownloadFileOperation : AsyncOperationBase
{
public PackageBundle Bundle { private set; get; }
/// <summary>
/// 引用计数
/// </summary>
public int RefCount { private set; get; }
/// <summary>
/// HTTP返回码
/// </summary>
public long HttpCode { protected set; get; }
/// <summary>
/// 当前下载的字节数
/// </summary>
public long DownloadedBytes { protected set; get; }
/// <summary>
/// 当前下载进度0f - 1f
/// </summary>
public float DownloadProgress { protected set; get; }
public FSDownloadFileOperation(PackageBundle bundle)
{
Bundle = bundle;
RefCount = 0;
HttpCode = 0;
DownloadedBytes = 0;
DownloadProgress = 0;
}
2025-02-28 16:11:01 +08:00
2025-04-01 21:12:28 +08:00
internal override string InternalGetDesc()
{
return $"RefCount : {RefCount}";
}
2025-02-28 16:11:01 +08:00
/// <summary>
/// 减少引用计数
/// </summary>
public virtual void Release()
2025-01-09 11:31:04 +08:00
{
RefCount--;
}
2025-02-28 16:11:01 +08:00
/// <summary>
/// 增加引用计数
/// </summary>
public virtual void Reference()
2025-01-09 11:31:04 +08:00
{
RefCount++;
}
}
}