Cara membaca data dari file teks dalam kesatuan


14

Adakah yang bisa membantu saya dengan memberikan langkah-langkah yang diperlukan untuk membaca data dari file teks dalam kesatuan dan bagaimana skrip dapat ditambahkan.


youtube.com/watch?v=6c1fTHkYzTQ Artinya membaca teks dalam c # ... yang akan membantu Anda :)
Savlon

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 = new StreamReader(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 ();")


27

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:

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
    }
}

atau Anda dapat membaca teks sebagai sumber daya seperti ini:

TextAsset text = Resources.Load("YourFilePath") as TextAsset;

7
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.


2

Kode ini berfungsi dengan baik bagi saya untuk membaca konten dalam file teks

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);
    }
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.