ここに私のコードがあります。 ここに見つかりました。 Downloading large file in Unity3d using WebClient これはこれに最適な方法のようですか?また、iOSにはどうすればよいですか?
void DownloadFile()
{
loadingBar.gameObject.SetActive(true);
downloadButton.SetActive(false);
downloadingFile = true;
WebClient client = new WebClient();
client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
client.DownloadFileCompleted += new System.ComponentModel.AsyncCompletedEventHandler(DownloadFileCompleted);
client.DownloadFileAsync(new Uri(url), Application.persistentDataPath + "/" + fileName);
}
void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
double bytesIn = double.Parse(e.BytesReceived.ToString());
double totalBytes = double.Parse(e.TotalBytesToReceive.ToString());
double percentage = bytesIn/totalBytes * 100;
downloadProgressText = "Downloaded " + e.BytesReceived + " of " + e.TotalBytesToReceive;
downloadProgress = int.Parse(Math.Truncate(percentage).ToString());
totalBytes = e.TotalBytesToReceive;
bytesDownloaded = e.BytesReceived;
}
void DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
if (e.Error == null)
{
AllDone();
}
}
void AllDone()
{
Debug.Log("File Downloaded");
FileExists = 1;
}
public void DeleteVideo()
{
print("Delete File");
PlayerPrefs.DeleteKey("videoDownloaded");
FileExists = 0;
enterButton.SetActive(false);
downloadButton.SetActive(true);
File.Delete(Application.persistentDataPath + "/" + fileName);
}
あなたは正しい方向にあります。 * Androidサービス*が必要です。 Javaからサービスを開始する必要があり、C#コードではなくJavaコードでダウンロードする必要があります。これをプラグインといいます。リンクしたコードは何とか役に立たない。それをJavaへの書き込み/移植の参照としてのみ使用できます。サービスを開始すると、サービスにファイルのダウンロードを指示できます。 Unityが閉じられると、ダウンロードは続行されます。 iOSの場合、JavaではなくObject-Cを使用してサービスを作成する必要があります。これらは簡単なものではありませんが、それらをGoogle検索すると助けてください。 – Programmer