【Unity】CSVファイルのデータを取り込む

Unityでアプリにcsvファイルのデータを取り込みたかったので調べてみました。

csvファイルは、前回Googleスプレッドシートで作ったのでそれを使います。

csvファイルをプロジェクトに追加する

アプリのプロジェクトに、まずは「Resources」フォルダを追加し、さらに中に「csv」フォルダを追加します。
そこへ作ったcsvファイルを追加します。

■前回作ったファイルの修正点
・ファイル名は「address.csv」に変更しました
・先頭行のフィールド名「番号、名前、都道府県」は削除しました



前準備完了!

ちなみに、こちらがcsvファイルの内容です。

1,佐藤,東京都
2,鈴木,神奈川県
3,高橋,大阪府

ソースコードでcsvファイルを読み込む

それでは、csvファイルを読み込みたい適当なスクリプトを編集します。
なければ、先頭に一行追加します。
StringReaderを使用するのに必要です。

using System.IO;

次に、csvファイルを読み込んでデータに変換する処理を追加ましょう。
ここでは、csvのデータを持たせるためにaddressDatasという名のリストを用意して、Start() の中にひと通りの流れを突っ込んでいます。

    // 住所録データ
    private List<string[]> addressDatas = new List<string[]>();

    // Use this for initialization
    void Start () {
        
        // csvファイル名
        var fileName = "address";
        // Resourcesのcsvフォルダ内のcsvファイルをTextAssetとして取得
        var csvFile = Resources.Load("csv/" + fileName) as TextAsset;
        // csvファイルの内容をStringReaderに変換
        var reader = new StringReader(csvFile.text);

        // csvファイルの内容を一行ずつ末尾まで取得しリストを作成
        while(reader.Peek() > -1) {
            // 一行読み込む
            var lineData = reader.ReadLine();
            // カンマ(,)区切りのデータを文字列の配列に変換
            var address = lineData.Split (',');
            // リストに追加
            addressDatas.Add(address);
            // 末尾まで繰り返し...
        }

        // ログに読み込んだデータを表示する
        foreach(var data in addressDatas) {
            Debug.Log("DATA:" + data[0] + " / " + data[1] + " / " + data[2]);
        }

    }

完了です。

csvファイルの内容を読み込んでログに表示することができました。


ヨカッタヨカッタ

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です