Qualcuno può aiutarmi a dare i passaggi necessari per leggere i dati dal file di testo in unità e come può essere aggiunto lo script.
Qualcuno può aiutarmi a dare i passaggi necessari per leggere i dati dal file di testo in unità e come può essere aggiunto lo script.
Risposte:
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( );
}
EDIT: (risolto un errore sulla riga 9; modificato "stm.ReadLine ();" in "inp_stm.ReadLine ();")
Esiste una classe denominata TextAssets che viene utilizzata per la lettura di file di testo. http://docs.unity3d.com/Manual/class-TextAsset.html Qui puoi trovare il formato file supportato.
Quindi, se vuoi leggere il file di testo, lo script sarebbe così:
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
}
}
oppure puoi leggere il testo come risorsa in questo modo:
TextAsset text = Resources.Load("YourFilePath") as TextAsset;
TextAsset
domanda in questione dovrebbe essere probabilmente inserita nella Assets/Resources
cartella. Questa è la risposta più corretta in quanto tutte le altre risposte sembrano ignorare il fatto che si trova all'interno di Unity. Sono modi corretti di leggere un file in C # ma ignorano cose come la distribuzione multipiattaforma e i percorsi.
Questo codice funziona bene per me per leggere il contenuto nel file di testo
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);
}
}