提交 f7b85619 编写于 作者: yqian1000's avatar yqian1000

优化数据下载

上级 a5b96439
......@@ -63,8 +63,9 @@ public class CardManager : SingletonMono<CardManager>
json = tx.text;
}
else
//读取系列记录存档
{ //读取系列记录存档
json = File.ReadAllText(SeriesListPath);
}
LoadFromJsonText(json);
}
......
......@@ -112,7 +112,7 @@ public class Card
json += $"\t\"Name\":\"{Name}\",\n";
json += $"\t\"Series\":\"{Series}\",\n";
json += $"\t\"Num\":\"{Num}\",\n";
json += $"\t\"Info\":\"{Info}\",\n";
json += $"\t\"Info\":\"{Info.Replace("\n","\\n")}\",\n";
json += $"\t\"Rare\":\"{Rare}\",\n";
json += $"\t\"Box\":\"{Box}\",\n";
json += $"\t\"Cost\":{Cost},\n";
......
......@@ -148,7 +148,7 @@ public class DownloadData : SingletonMono<DownloadData>
}
IEnumerator DownloadText(string url, Action<string> success = null, Action<string> fail = null)
IEnumerator DownloadText(string url, Action<string> success = null, Action<string> fail = null, int retry = 0)
{
// 创建一个 UnityWebRequest 对象,并指定要下载的网页 URL
......@@ -160,8 +160,15 @@ public class DownloadData : SingletonMono<DownloadData>
// 检查是否有错误发生
if (webRequest.result != UnityWebRequest.Result.Success)
{
Debug.LogError("网络请求失败: " + webRequest.error + "\n" + url);
fail?.Invoke(webRequest.error);
Debug.LogError("网络请求失败: " + webRequest.error +":" + retry + "\n" + url);
if (retry < 5)
{
Debug.Log($"重新尝试:{url} - 次数{retry}");
yield return StartCoroutine(DownloadText(url, success, fail, retry + 1));
}
else
fail?.Invoke(webRequest.error);
yield break;
}
......
......@@ -66,7 +66,7 @@ public class DownlaodImage : SingletonMono<DownlaodImage>
return $"{path}/{card.Num.Replace("/", "_")}.png";
}
/// <summary>
/// 保存文件到本地
......@@ -165,7 +165,7 @@ public class DownlaodImage : SingletonMono<DownlaodImage>
downloading = false;
}
IEnumerator DownloadingImg(Card card)
IEnumerator DownloadingImg(Card card, int retry = 0)
{
// 创建一个 UnityWebRequest 对象,并指定要下载的网页 URL
UnityWebRequest webRequest = UnityWebRequest.Get(card.ImgUrl);
......@@ -177,6 +177,11 @@ public class DownlaodImage : SingletonMono<DownlaodImage>
if (webRequest.result != UnityWebRequest.Result.Success)
{
Debug.LogError("网络请求失败: " + webRequest.error + "\n" + card.ImgUrl);
if (retry < 5)
{
Debug.Log($"重新尝试:{card.Num} - 次数{retry}");
yield return StartCoroutine(DownloadingImg(card, retry + 1));
}
yield break;
}
byte[] bytes = webRequest.downloadHandler.data;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册