C# 如何使用C sharp中的unity3d从url下载文件并保存到位置?
我正在从事unity3d项目。我需要从服务器下载一组文件。我使用C#编写脚本。经过一个小时的谷歌搜索,我还没有找到一个解决方案,因为糟糕的文档。有谁能给我一个从url下载文件并将其保存在unity3d中特定位置的示例代码吗?unity3d使用C#Mono实现。标准.NET库中提供了Mono支持。因此,每当您想知道“我如何在Unity中做到这一点?”时,您总是可以查看一下.NET的文档,该文档绝对不差。关于您的问题,请使用C# 如何使用C sharp中的unity3d从url下载文件并保存到位置?,c#,unity3d,C#,Unity3d,我正在从事unity3d项目。我需要从服务器下载一组文件。我使用C#编写脚本。经过一个小时的谷歌搜索,我还没有找到一个解决方案,因为糟糕的文档。有谁能给我一个从url下载文件并将其保存在unity3d中特定位置的示例代码吗?unity3d使用C#Mono实现。标准.NET库中提供了Mono支持。因此,每当您想知道“我如何在Unity中做到这一点?”时,您总是可以查看一下.NET的文档,该文档绝对不差。关于您的问题,请使用WebClient类: using System; using System
WebClient
类:
using System;
using System.Net;
using System.IO;
public class Test
{
public static void Main (string[] args)
{
WebClient client = new WebClient();
Stream data = client.OpenRead(@"http://google.com");
StreamReader reader = new StreamReader(data);
string s = reader.ReadToEnd();
Console.WriteLine(s);
data.Close();
reader.Close();
}
}
编辑
下载图像文件时,请使用WebClient
提供的DownloadFile
方法:
WebClient client = new WebClient();
client.DownloadFile("http://upload.wikimedia.org/wikipedia/commons/5/51/Google.png", @"C:\Images\GoogleLogo.png")
看看Unity 3d中的WWW功能
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
public string url = "http://images.earthcam.com/ec_metros/ourcams/fridays.jpg";
IEnumerator Start() {
WWW www = new WWW(url);
yield return www;
renderer.material.mainTexture = www.texture;
}
}
如果您希望压缩数据包,请使用资产包
var www = new WWW ("http://myserver/myBundle.unity3d");
yield www;
// Get the designated main asset and instantiate it.
Instantiate(www.assetBundle.mainAsset);
请注意,有些函数仅准备就绪。。。比如www.url函数。一些示例已移至手动部分,而不是脚本部分
希望这有帮助
-标记可用于异步下载文件的
差不多
System.Net.WebClient client = new WebClient();
client.DownloadFileAsync(new Uri("your uri"), "save path.");
我发现了一个很好的例子,可以与unity3d一起使用,Unity的
WWW
类和方法组已被弃用。当前推荐使用UnityWebRequest
处理web请求,尤其是:
谢谢。如何下载图像文件?通常,异步下载优于同步下载,如图所示。Unity现在有一个内置的
UnityWebRequest
,它支持在协同程序中异步下载。
using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
public class MyBehaviour : MonoBehaviour {
void Start() {
StartCoroutine(GetText());
}
IEnumerator GetText() {
UnityWebRequest www = UnityWebRequest.Get("http://www.my-server.com");
yield return www.SendWebRequest();
if(www.isNetworkError || www.isHttpError) {
Debug.Log(www.error);
}
else {
// Show results as text
Debug.Log(www.downloadHandler.text);
// Or retrieve results as binary data
byte[] results = www.downloadHandler.data;
}
}
}