Kann mir jemand helfen, die erforderlichen Schritte zum Lesen von Daten aus der Textdatei in einer Einheit anzugeben und wie das Skript hinzugefügt werden kann?
Kann mir jemand helfen, die erforderlichen Schritte zum Lesen von Daten aus der Textdatei in einer Einheit anzugeben und wie das Skript hinzugefügt werden kann?
Antworten:
using System.IO;
void readTextFile(string file_path)
{
StreamReader inp_stm = new StreamReader(file_path);
while(!inp_stm.EndOfStream)
{
string inp_ln = inp_stm.ReadLine( );
// Do Something with the input.
}
inp_stm.Close( );
}
BEARBEITEN: (Fehler in Zeile 9 behoben; "stm.ReadLine ();" in "inp_stm.ReadLine ();" geändert)
Es gibt eine Klasse namens TextAssets, die zum Lesen von Textdateien verwendet wird. http://docs.unity3d.com/Manual/class-TextAsset.html Hier finden Sie das unterstützte Dateiformat.
Wenn Sie also die Textdatei lesen möchten, sieht das Skript folgendermaßen aus:
class YourClassName : MonoBehaviour{
public TextAsset textFile; // drop your file here in inspector
void Start(){
string text = textFile.text; //this is the content as string
byte[] byteText = textFile.bytes; //this is the content as byte array
}
}
oder Sie können den Text wie folgt als Ressource lesen:
TextAsset text = Resources.Load("YourFilePath") as TextAsset;
TextAsset
fragliche wahrscheinlich in den Assets/Resources
Ordner gelegt werden sollte. Dies ist die richtigste Antwort, da alle anderen Antworten die Tatsache zu ignorieren scheinen, dass dies innerhalb der Einheit ist. Sie sind die richtige Methode zum Lesen einer Datei in C #, ignorieren jedoch Dinge wie plattformübergreifende Bereitstellung und Pfade.
Dieser Code funktioniert gut für mich, um den Inhalt in der Textdatei zu lesen
import System.IO;
var filename="data.txt";
function Start () {
var sourse=new StreamReader(Application.dataPath+"/" + filename);
var fileContents=sourse.ReadToEnd();
sourse.Close();
var lines=fileContents.Split("\n"[0]);
for(line in lines) {
print(line);
}
}