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