在Unity3d中,如何连续读取.txt文件中的位置数据?

In Unity3d, How can I read the position data from .txt file continuously?

在Unity3D中,我想从文本文件中加载位置数据。这是文本文件的示例。这些是模拟结果。模拟程序每秒生成 30 个数据。所以,我想实时可视化结果。内容是x,y,z位置。

data_01.txt

1 -5 -10

data_02.txt

2 2 5

data_03.txt

3 2 4

.......

所有文件由 1 行组成。

我想将这些数据输入到一个对象中。

我想每 1 秒加载 30 个文本文件。

我编写了读取第一个文本文件的代码。 但是,我需要一些关于连续阅读文本文件的建议。我想每帧读取 1 个文本文件。

using UnityEngine;
using System.Collections;
using System;
using System.IO;

public class parsing : MonoBehaviour {

    public string fileName = "Data_01.txt"

    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {

        if (!File.Exists(fileName))
        {
            Debug.Log(fileName + "does not exist.");
            return;
        }

        using (StreamReader sr = File.OpenText(fileName))
        {
            String fileData;
            fileData = sr.ReadToEnd();
            sr.Close();

            Debug.Log("Data Read: " + fileData);

        }

    }
}

通过文本文件传输连续数据非常糟糕idea/approach。

您最好使用(例如)tcp 连接并使用 .Nets 的 System.Net.Sockets(更准确地说是 TcpListenerTcpClient)将您的模拟数据发送到 unity。 =18=]

参见:https://msdn.microsoft.com/en-us/library/system.net.sockets(v=vs.110).aspx

(如果你想坚持你的方法,你必须知道要读取每个 Update() 的文本文件的名称。你可以使用计数器变量(例如将其命名为计数器),即每个 Update() 递增。这样你就可以像 string filename = "data_" + counter.ToString("D2") + ".txt" 那样将当前文本文件名粘合在一起。(如果计数器的值只有一位,则 ToString("D2") 将添加前导零,例如 1 -> "01")