Является ли текстовый файл активом (частью вашего проекта Unity) или находится в файловой системе?
Келли Томас
он расположен в файловой системе. Я поместил свой файл на диск E и использовал следующий код `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 (строка в строках) {print (строка); }} `
user1509674
VTC как не специфичный для игры. IO - это общее программирование, оно должно быть в переполнении стека, а не в GameDev.
Гнемлок
Принятый ответ не единство конкретный, но наибольшее количество голосов ответ (который имо должны был быть принят) является единство специфичны.
Джоккинг
Ответы:
8
Версия 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();}
РЕДАКТИРОВАТЬ: (Исправлена ошибка в строке 9; изменено "stm.ReadLine ();" на "inp_stm.ReadLine ();")
Так что если вы хотите прочитать текстовый файл, скрипт будет выглядеть так:
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}}
или вы можете прочитать текст как ресурс:
TextAsset text =Resources.Load("YourFilePath")asTextAsset;
Также стоит упомянуть, что данный TextAssetвопрос, вероятно, должен быть помещен в Assets/Resourcesпапку. Это самый правильный ответ, так как все остальные ответы, похоже, игнорируют тот факт, что это внутри Единства. Они являются правильными способами чтения файла в C #, но игнорируют такие вещи, как кроссплатформенное развертывание и пути.
МакАден
1
Если вы используете TextAsset, вы можете перетащить ссылку на MonoBehaviour и использовать свойство yext. В этом случае это не должно быть в Ресурсах
Rage
4
Вы можете сделать это так же, как в .NET
string word =File.ReadAllText(txtFilePath);
Этот фрагмент кода может быть использован в любом месте, где вы пожелаете.
Ответы:
Версия C #.
РЕДАКТИРОВАТЬ: (Исправлена ошибка в строке 9; изменено "stm.ReadLine ();" на "inp_stm.ReadLine ();")
источник
Есть класс с именем TextAssets, который используется для чтения текстовых файлов. http://docs.unity3d.com/Manual/class-TextAsset.html Здесь вы можете найти поддерживаемый формат файла.
Так что если вы хотите прочитать текстовый файл, скрипт будет выглядеть так:
или вы можете прочитать текст как ресурс:
источник
TextAsset
вопрос, вероятно, должен быть помещен вAssets/Resources
папку. Это самый правильный ответ, так как все остальные ответы, похоже, игнорируют тот факт, что это внутри Единства. Они являются правильными способами чтения файла в C #, но игнорируют такие вещи, как кроссплатформенное развертывание и пути.Вы можете сделать это так же, как в .NET
Этот фрагмент кода может быть использован в любом месте, где вы пожелаете.
источник
Этот код работает нормально для меня, чтобы прочитать содержимое в текстовом файле
источник