在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
(更准确地说是 TcpListener
和 TcpClient
)将您的模拟数据发送到 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")
在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
(更准确地说是 TcpListener
和 TcpClient
)将您的模拟数据发送到 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")