O arquivo de texto é um ativo (parte do seu projeto do Unity) ou está localizado no sistema de arquivos?
Kelly Thomas
está localizado no sistema de arquivos. Coloquei meu arquivo na unidade E e usei o seguinte código `import System.IO; var filename = "data.txt"; função Start () {var sourse = novo StreamReader (Application.dataPath + "/" + nome do arquivo); var fileContents = sourse.ReadToEnd (); sourse.Close (); var linhas = fileContents.Split ("\ n" [0]); for (linha em linhas) {print (line); }} `
user1509674
VTC como não específico do jogo. IO é programação genérica, isso deve estar no Stack Overflow, não no GameDev.
Gnemlock 25/09/16
A resposta aceita não é específica do Unity, mas a resposta mais votada (que imo deveria ter sido aceita) é específica do Unity.
Jhocking
Respostas:
8
Versão C #.
using System.IO;void readTextFile(string file_path){StreamReader inp_stm =newStreamReader(file_path);while(!inp_stm.EndOfStream){string inp_ln = inp_stm.ReadLine();// Do Something with the input. }
inp_stm.Close();}
EDIT: (Corrigido um erro na linha 9; alterado "stm.ReadLine ();" para "inp_stm.ReadLine ();")
Portanto, se você quiser ler o arquivo de texto, o script seria assim:
classYourClassName:MonoBehaviour{publicTextAsset textFile;// drop your file here in inspectorvoidStart(){string text = textFile.text;//this is the content as stringbyte[] byteText = textFile.bytes;//this is the content as byte array}}
ou você pode ler o texto como recurso assim:
TextAsset text =Resources.Load("YourFilePath")asTextAsset;
Também vale mencionar que o TextAssetem questão provavelmente deve ser colocado dentro da Assets/Resourcespasta. Esta é a resposta mais correta, pois todas as outras respostas parecem ignorar o fato de que isso está dentro da Unity. Eles são maneiras corretas de ler um arquivo em C #, mas ignoram coisas como implantação e caminhos entre plataformas.
McAden 26/10/14
1
Se você usa o TextAsset, provavelmente arrasta a referência para um MonoBehaviour e usa a propriedade yext. Nesse caso, ele não precisa estar em Respurces
Rakka Rage
4
Você pode fazer isso da mesma maneira que faria no .NET
string word =File.ReadAllText(txtFilePath);
Esse snippet de código pode ser usado em qualquer local que você desejar.
Respostas:
Versão C #.
EDIT: (Corrigido um erro na linha 9; alterado "stm.ReadLine ();" para "inp_stm.ReadLine ();")
fonte
Há uma classe chamada TextAssets que é usada para leitura de arquivos de texto. http://docs.unity3d.com/Manual/class-TextAsset.html Aqui você encontra o formato de arquivo suportado.
Portanto, se você quiser ler o arquivo de texto, o script seria assim:
ou você pode ler o texto como recurso assim:
fonte
TextAsset
em questão provavelmente deve ser colocado dentro daAssets/Resources
pasta. Esta é a resposta mais correta, pois todas as outras respostas parecem ignorar o fato de que isso está dentro da Unity. Eles são maneiras corretas de ler um arquivo em C #, mas ignoram coisas como implantação e caminhos entre plataformas.Você pode fazer isso da mesma maneira que faria no .NET
Esse snippet de código pode ser usado em qualquer local que você desejar.
fonte
Este código está funcionando bem para eu ler o conteúdo no arquivo de texto
fonte