Birlik içindeki metin dosyasından veri nasıl okunur


14

Herkes metin dosyasından veri okumak için gerekli adımları vermek ve bana komut dosyası nasıl eklenebilir bana yardımcı olabilir.


youtube.com/watch?v=6c1fTHkYzTQ olduğunu :) size yardımcı olacak ... c # metni okumak için
— Savlon

Metin dosyası bir Varlık mı (Unity projenizin bir parçası) mı yoksa dosya sisteminde mi yer alıyor?
— Kelly Thomas

Dosyamı E sürücüsüne yerleştirdim ve aşağıdaki kodu `` import System.IO; var dosyaadı = "data.txt"; function Start () {var sourse = yeni StreamReader (Application.dataPath + "/" + dosya adı); var fileContents = sourse.ReadToEnd (); sourse.Close (); var lines = fileContents.Split ("\ n" [0]); for (satırlar halinde) {print (line); }} `
— user1509674

Oyuna özgü olmayan VTC. ES genel programlamadır, bu GameDev'de değil Stack Overflow'da olmalıdır.
— Gnemlock

Kabul cevap Birlik özgü değildir, ancak (IMO kabul edilmiş olmalı) en yüksek olarak cevap olduğunu Birlik özgü.
— 17'de

Yanıtlar:


8

C # Sürümü.

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: (Satır 9'daki bir hata düzeltildi; "stm.ReadLine ();" olarak "inp_stm.ReadLine ();" olarak değiştirildi)


27

Metin dosyasını okumak için kullanılan TextAssets adında bir sınıf var. http://docs.unity3d.com/Manual/class-TextAsset.html Burada desteklenen dosya biçimini bulabilirsiniz.

Metin dosyasını okumak istiyorsanız, komut dosyası şöyle olur:

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

ya da metni şöyle kaynak olarak okuyabilirsiniz:

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

7
Ayrıca söz konusu TextAssetmuhtemelen Assets/Resourcesklasör içine yerleştirilmesi gerektiğini belirtmek gerekir . Diğer tüm cevaplar bunun Birlik içinde olduğu gerçeğini görmezden geldiği için bu en doğru cevaptır. C # 'da bir dosyayı okumanın doğru yollarıdır, ancak platformlar arası dağıtım ve yollar gibi şeyleri yok sayın.
— McAden

1
TextAsset kullanıyorsanız, başvuruyu bir MonoBehaviour'a sürükleyip yext özelliğini kullanırsınız. Bu durumda Solunumlarda olması gerekmez
— Rakka Rage

4

Bunu .NET'te yaptığınız gibi yapabilirsiniz

string word = File.ReadAllText(txtFilePath);

Bu kod snippet'i daha sonra istediğiniz herhangi bir yerde kullanılabilir.


2

Bu kod, metin dosyasındaki içeriği okumak için iyi çalışıyor

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);
    }
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.