C# 如何使用C sharp中的unity3d从url下载文件并保存到位置?

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

我正在从事unity3d项目。我需要从服务器下载一组文件。我使用C#编写脚本。经过一个小时的谷歌搜索,我还没有找到一个解决方案,因为糟糕的文档。有谁能给我一个从url下载文件并将其保存在unity3d中特定位置的示例代码吗?

unity3d使用C#Mono实现。标准.NET库中提供了Mono支持。因此,每当您想知道“我如何在Unity中做到这一点?”时,您总是可以查看一下.NET的文档,该文档绝对不差。关于您的问题,请使用
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;
        }
    }
}