Adakah yang bisa membantu saya dengan memberikan langkah-langkah yang diperlukan untuk membaca data dari file teks dalam kesatuan dan bagaimana skrip dapat ditambahkan.
Apakah file teks itu Aset (bagian dari proyek Persatuan Anda) atau terletak di sistem file?
Kelly Thomas
terletak di filesystem. Saya telah meletakkan file saya di drive E dan menggunakan kode `import System.IO; var filename = "data.txt"; function Start () {var sourse = new StreamReader (Application.dataPath + "/" + nama file); var fileContents = sourse.ReadToEnd (); sourse.Tutup (); var lines = fileContents.Split ("\ n" [0]); for (line in lines) {print (line); }} `
user1509674
VTC sebagai bukan game spesifik. IO adalah pemrograman generik, ini harus di Stack Overflow, bukan GameDev.
Gnemlock
Jawaban yang diterima tidak spesifik untuk Unity, tetapi jawaban dengan suara tertinggi (yang seharusnya diterima) adalah khusus untuk Unity.
jhocking
Jawaban:
8
Versi 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: (Memperbaiki kesalahan pada baris 9; mengubah "stm.ReadLine ();" menjadi "inp_stm.ReadLine ();")
Jadi jika Anda ingin membaca file teks, skripnya akan seperti ini:
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}}
atau Anda dapat membaca teks sebagai sumber daya seperti ini:
TextAsset text =Resources.Load("YourFilePath")asTextAsset;
Juga patut disebutkan bahwa TextAssetpertanyaan tersebut mungkin harus ditempatkan di dalam Assets/Resourcesfolder. Ini adalah jawaban yang paling benar karena semua jawaban lain tampaknya mengabaikan fakta bahwa ini berada dalam Persatuan. Mereka adalah cara yang benar untuk membaca file dalam C # tetapi mengabaikan hal-hal seperti penyebaran lintas platform dan jalur.
McAden
1
Jika Anda menggunakan TextAsset, Anda dapat menarik referensi ke MonoBehaviour dan menggunakan properti yext. Dalam hal ini tidak perlu berada di Respurces
Rakka Rage
4
Anda bisa melakukan ini dengan cara yang sama dengan yang Anda lakukan di .NET
string word =File.ReadAllText(txtFilePath);
Cuplikan kode ini dapat digunakan di lokasi mana pun yang Anda inginkan.
Jawaban:
Versi C #.
EDIT: (Memperbaiki kesalahan pada baris 9; mengubah "stm.ReadLine ();" menjadi "inp_stm.ReadLine ();")
sumber
Ada kelas bernama TextAssets yang digunakan untuk membaca file teks. http://docs.unity3d.com/Manual/class-TextAsset.html Di sini Anda dapat menemukan format file yang didukung.
Jadi jika Anda ingin membaca file teks, skripnya akan seperti ini:
atau Anda dapat membaca teks sebagai sumber daya seperti ini:
sumber
TextAsset
pertanyaan tersebut mungkin harus ditempatkan di dalamAssets/Resources
folder. Ini adalah jawaban yang paling benar karena semua jawaban lain tampaknya mengabaikan fakta bahwa ini berada dalam Persatuan. Mereka adalah cara yang benar untuk membaca file dalam C # tetapi mengabaikan hal-hal seperti penyebaran lintas platform dan jalur.Anda bisa melakukan ini dengan cara yang sama dengan yang Anda lakukan di .NET
Cuplikan kode ini dapat digunakan di lokasi mana pun yang Anda inginkan.
sumber
Kode ini berfungsi dengan baik bagi saya untuk membaca konten dalam file teks
sumber