統一してテキストファイルからデータを読み取る方法


14

誰でもテキストファイルからデータを1つに読み込むために必要な手順を提供し、スクリプトを追加する方法を教えてくれますか?


youtube.com/watch?v=6c1fTHkYzTQこれはc#でテキストを読むことです...これはあなたを助けます:)
サヴロン

テキストファイルはアセット(Unityプロジェクトの一部)ですか、それともファイルシステム上にありますか?
ケリートーマス

そのファイルシステムにあります。ファイルをEドライブに配置し、次のコードを使用しました `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); }} `
user1509674 14年

ゲーム固有ではないVTC。IOは汎用プログラミングです。これはGameDevではなく、Stack Overflow上にある必要があります。
ニームロック

受け入れられた答えはUnity固有のものではありませんが、最高の投票された答え(これ受け入れられるべきです) Unity固有のものです。
17

回答:


8

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( );  
}

編集:(9行目のエラーを修正、「stm.ReadLine();」を「inp_stm.ReadLine();」に変更)


27

テキストファイルの読み取りに使用されるTextAssetsという名前のクラスがあります。 http://docs.unity3d.com/Manual/class-TextAsset.html ここで、サポートされているファイル形式を見つけることができます。

したがって、テキストファイルを読みたい場合、スクリプトは次のようになります。

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

または、次のようなリソースとしてテキストを読むことができます。

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

7
またTextAsset、問題のAssets/Resourcesフォルダはおそらくフォルダ内に配置する必要があることを言及する価値があります。これが最も正しい答えです。他のすべての答えは、これがUnity内にあるという事実を無視しているようです。C#でファイルを読み取る正しい方法ですが、クロスプラットフォームの展開やパスなどは無視します。
マカデン14年

1
TextAssetを使用する場合、MonoBehaviourへの参照をドラッグし、yextプロパティを使用します。その場合には、Respurcesである必要はありません
ラッカレイジ

4

これは、.NETと同じ方法で実行できます。

string word = File.ReadAllText(txtFilePath);

このコードスニペットは、任意の場所で使用できます。


2

このコードは、テキストファイルのコンテンツを読み取るために正常に機能しています

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);
    }
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.