¿El archivo de texto es un activo (parte de su proyecto de Unity) o está ubicado en el sistema de archivos?
Kelly Thomas
está ubicado en el sistema de archivos. Coloqué mi archivo en la unidad E y usé el siguiente código `import System.IO; var filename = "data.txt"; función Start () {var sourse = new StreamReader (Application.dataPath + "/" + filename); var fileContents = sourse.ReadToEnd (); sourse.Close (); var lines = fileContents.Split ("\ n" [0]); para (línea en líneas) {print (línea); }} `
usuario1509674
VTC como no específico del juego. IO es una programación genérica, esto debería estar en Stack Overflow, no en GameDev.
Gnemlock
La respuesta aceptada no es específica de Unity, pero la respuesta más votada (que debería haber sido aceptada) es específica de Unity.
jhocking
Respuestas:
8
Versión 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();}
EDITAR: (Se corrigió un error en la línea 9; se cambió "stm.ReadLine ();" a "inp_stm.ReadLine ();")
Entonces, si desea leer el archivo de texto, el script sería así:
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}}
o puede leer el texto como un recurso como este:
TextAsset text =Resources.Load("YourFilePath")asTextAsset;
También vale la pena mencionar que el TextAsseten cuestión probablemente debería colocarse dentro de la Assets/Resourcescarpeta. Esta es la respuesta más correcta ya que todas las otras respuestas parecen ignorar el hecho de que esto está dentro de la Unidad. Son formas correctas de leer un archivo en C # pero ignoran cosas como la implementación y rutas multiplataforma.
McAden
1
Si usa TextAsset, probablemente arrastre la referencia a MonoBehaviour y use la propiedad yext. En cuyo caso no necesita estar en Respurces
Rakka Rage
4
Puede hacerlo de la misma manera que lo haría en .NET
string word =File.ReadAllText(txtFilePath);
Este fragmento de código se puede usar en cualquier ubicación que desee.
Respuestas:
Versión C #.
EDITAR: (Se corrigió un error en la línea 9; se cambió "stm.ReadLine ();" a "inp_stm.ReadLine ();")
fuente
Hay una clase llamada TextAssets que se usa para la lectura de archivos de texto. http://docs.unity3d.com/Manual/class-TextAsset.html Aquí puede encontrar el formato de archivo compatible.
Entonces, si desea leer el archivo de texto, el script sería así:
o puede leer el texto como un recurso como este:
fuente
TextAsset
en cuestión probablemente debería colocarse dentro de laAssets/Resources
carpeta. Esta es la respuesta más correcta ya que todas las otras respuestas parecen ignorar el hecho de que esto está dentro de la Unidad. Son formas correctas de leer un archivo en C # pero ignoran cosas como la implementación y rutas multiplataforma.Puede hacerlo de la misma manera que lo haría en .NET
Este fragmento de código se puede usar en cualquier ubicación que desee.
fuente
Este código está funcionando bien para que yo lea el contenido en el archivo de texto
fuente