我编写了一个游戏,可以从服务器下载图像,然后将其存储在Application.persistentDataPath中.
我的问题是,当保存场景挂起的少量图像时,完成保存后,它将执行其余代码.
我该如何解决这个问题?
将映像保存到设备本地存储中:
if (File.Exists (Application.persistentDataPath + "/LayoutImages/")) {
Debug.Log (imagesPathPrefix + " already exists.");
return;
}
File.WriteAllBytes (Application.persistentDataPath + "/LayoutImages/abc.jpg", image);
解决方法:
您可以在侧面创建用于执行操作的线程.这是一个例子:
class FileDownloader
{
struct parameterObject
{
public string url;
public string savePath;
}
static void downloadfunction(object data)
{
parameterObject obj = (parameterObject)data;
if (File.Exists(obj.savePath))
return;
using (WebClient Client = new WebClient())
{
Client.DownloadFile(obj.url, obj.savePath);
}
}
public static void downloadfromURL(string url, string savePath)
{
parameterObject obj = new parameterObject();
obj.url = url;
obj.savePath = savePath;
Thread thread = new Thread(FileDownloader.downloadfunction);
thread.Start(obj);
}
}
注意:如果要在下载后立即使用映像,请不要使用线程. Unity3d不是线程安全的.
原文地址:https://codeday.me/bug/20191028/1951732.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。