【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ファイルの内容を読み込んでログに表示することができました。

ヨカッタヨカッタ


