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.