Làm thế nào để đọc dữ liệu từ tệp văn bản trong sự thống nhất


14

Bất cứ ai có thể giúp tôi với việc đưa ra các bước cần thiết để đọc dữ liệu từ tệp văn bản một cách thống nhất và làm thế nào có thể thêm tập lệnh.


youtube.com/watch?v=6c1fTHkYzTQ Đó là đọc văn bản trong c # Sẽ giúp bạn :)
Savlon

Tệp văn bản có phải là Tài sản (một phần của dự án Unity của bạn) hoặc nằm trên hệ thống tệp không?
Kelly Thomas

nó nằm trên hệ thống files.I đã đặt tệp của tôi vào ổ E và sử dụng mã sau đây `import System.IO; var filename = "data.txt"; function Start () {var sference = new StreamReader (Application.dataPath + "/" + tên tệp); var fileContents = s thuyết.ReadToEnd (); thuyết minh. Đóng (); var lines = fileContents.Split ("\ n" [0]); for (dòng trong dòng) {print (dòng); }} `
user1509674

VTC như không cụ thể trò chơi. IO là chương trình chung, cái này phải có trên Stack Overflow chứ không phải GameDev.
Gnemlock

Câu trả lời được chấp nhận không phải là Unity cụ thể, nhưng câu trả lời được bình chọn cao nhất (mà imo nên được chấp nhận) Unity cụ thể.
jhocking

Câu trả lời:


8

Phiên bản 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: (Đã sửa lỗi trên dòng 9; đã thay đổi "stm.ReadLine ();" thành "inp_stm.ReadLine ();")


27

Có một lớp có tên là TextAssets được sử dụng để đọc tệp văn bản. http://docs.unity3d.com/Manual/ class-TexAsset.html Tại đây bạn có thể tìm thấy định dạng tệp được hỗ trợ.

Vì vậy, nếu bạn muốn đọc tệp văn bản, tập lệnh sẽ như thế này:

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

hoặc bạn có thể đọc văn bản dưới dạng tài nguyên như thế này:

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

7
Cũng đáng đề cập rằng TextAssetcâu hỏi có lẽ nên được đặt trong Assets/Resourcesthư mục. Đây là câu trả lời đúng nhất vì tất cả các câu trả lời khác dường như bỏ qua thực tế rằng đây là trong Unity. Chúng là những cách chính xác để đọc một tệp trong C # nhưng bỏ qua những thứ như đường dẫn và triển khai đa nền tảng.
McAden

1
Nếu bạn sử dụng TextAsset, bạn sẽ kéo tham chiếu kéo đến MonoBehaviour và sử dụng thuộc tính yext. Trong trường hợp đó, nó không cần phải ở Respurces
Rakka Rage

4

Bạn có thể làm điều này giống như cách bạn làm trong .NET

string word = File.ReadAllText(txtFilePath);

Đoạn mã này có thể được sử dụng ở bất kỳ vị trí nào bạn muốn sau đó.


2

Mã này đang hoạt động tốt để tôi đọc nội dung trong tệp văn bản

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);
    }
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.