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.