2016-05-31 32 views
0

In Unity3D möchte ich Positionsdaten aus einer Textdatei laden. Hier ist ein Beispiel für die Textdatei. Dies sind Simulationsergebnisse. Das Simulationsprogramm erzeugt 30 Daten pro Sekunde. Also, ich möchte das Ergebnis in Echtzeit visualisieren. Der Inhalt ist x, y, z-Position.In Unity3d, Wie kann ich die Positionsdaten aus. TXT-Datei kontinuierlich lesen?

data_01.txt

1 -5 -10

DATA_ 02.txt

data_03.txt

. ..............

Alle Dateien bestehen aus 1 Zeile.

Ich möchte diese Daten in ein Objekt eingeben.

Ich möchte Textdatei in 30 Textdateien pro Sekunde laden.

Ich schreibe Code, der erste Textdatei liest. Aber ich brauche einen Rat zum kontinuierlichen Lesen von Textdateien. Ich möchte 1 Textdatei pro Frame lesen.

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); 

     } 

    } 
} 
+0

I denke, ich habe fast die gleiche Frage hier wie vor ein paar Tagen gefragt gesehen :) –

+0

Bitte stellen Sie nicht die gleiche Frage immer und immer wieder - wenn Sie mo Um Informationen hinzuzufügen, bearbeiten Sie bitte Ihre ursprüngliche Frage. Veröffentlichen Sie eine leicht geänderte Version Ihrer Frage nicht als brandneu. – Serlite

+0

Hinweis: Wenn Sie der Meinung sind, dass sich diese Frage seit der letzten Änderung erheblich geändert hat, erläutern Sie bitte wie. Erklären Sie, welche neuen Dinge Sie ausprobiert haben und welche Probleme Sie als Ergebnis haben. – Serlite

Antwort

1

kontinuierliche Daten über Textdateien Übertragen von ist eine ziemlich schlechte Idee/Ansatz.

Sie verwenden z. B. besser eine TCP-Verbindung und senden Ihre Simulationsdaten mithilfe von .Nets 'System.Net.Sockets (genauer TcpListener und TcpClient) an die Einheit.

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

(Wenn Sie Ihren Ansatz bleiben möchten, müssen Sie den Namen der Textdateien müssen wissen, jedes Update() lesen Sie eine Zählvariable es zum Beispiel Zähler (Name verwenden könnte). , das wird jeweils um Update() erhöht.Auf diese Weise können Sie den aktuellen Textdateinamen wie string filename = "data_" + counter.ToString("D2") + ".txt" zusammenkleben (Die ToString("D2") fügt führende Nullen hinzu, wenn der Wert des Zählers nur eine Ziffer ist, zB 1 -> "01")