在不干扰游戏逻辑及其执行的情况下阅读文本文件

时间:2014-12-22 06:43:10

标签: c# asynchronous unity3d

我正在尝试读取放在服务器上的文本文件。它是一个文本文件。我能够阅读它,但问题是如果互联网速度慢,它会让游戏停留一段时间。 可能我需要将此任务作为异步运行,但我无法执行此操作。我无法在网上找到任何合理的帮助。

请告诉我如何在后台运行任务或在Unity中异步运行任务。 这是我想在后台执行的功能。

private void readFile()
{
    Debug.Log("Trying to Read");
    WebClient client = new WebClient();
    Stream stream = client.OpenRead("my text file url.txt");
    reader = new StreamReader(stream);
    result = reader.ReadToEnd();
    Debug.Log(result);
}

期待快速帮助。 感谢

2 个答案:

答案 0 :(得分:1)

您可以使用WWW或WWWForm类来完成此操作...... 您只需要提供文件下载路径,并且可以从实例化的WWW对象的.text属性中提取下载的内容。

public class ExampleClass : MonoBehaviour {
public string url = "File download URL here";
IEnumerator Start() {
    WWW www = new WWW(url);
    yield return www;
    //retreive the file content using www.text
    //write your code here
}

如果您需要更多信息,请参阅Unity docthis article使用www下载xml并显示现有数据

答案 1 :(得分:-1)

这是一个选项:

var task = new Task(readFile);
task.Start();