過去にデータの保存は取得などを調べた際に
一時的に保存する領域はパッと出たのですが(ハイスコアとかちょっと使うには便利?)こういうゲームはSAVEとかあると思うので基本的には
DBやファイルに保存する形が望ましいかなと思います。
個人だしそんな難しいことは経験もないので
とりあえずサーバに置く形ではなく
データはファイルに保存する形をとりたいと思います!!
で、調べてみるとCSVファイルの読み込みや保存ができそうな感じなので
これで行きたいと思います。
===テストデータ======
城cd,城,国cd,国,居城flg
1,青森,1,南部家,1
47,鹿児島,2,島津家,1
================
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
// データ private List<string[]> addressDatas = new List<string[]>(); // Use this for initialization void Start() { Debug.Log("DAT"); // csvファイル名 var fileName = "siro"; // 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]); } } |
↑Webで検索したロジック
これをちょっと変えて使ってみると!!
ダメ・・・
エラー
で、上記にあるように
startすぐのデバックログをみると「Debug.Log(“DAT”);」
ここまでは到達しているようなので処理自体ダメなわけではない。
で、よくわからないので
とりあえず、
ファイルから全角を取ってみた(数字だけにした)
すると、
DATA:1 / 1 / 2 / 3
DATA:2 / 4 / 5 / 6
といった感じで取得できました!!
といことは日本語や全角がダメなんでしょうから、
ググってみると、
やはりありました!!
Sjisがダメだったようです。
UTF8に変換すると
DATA:1 / 1 / 青森 / 1 / 南部
DATA:2 / 47 / 鹿児島 / 2 / 島津
という感じに無事表示!!
なかなかハマりましたが
とりあえず取得できることが出来て一安心。
データエンジニアにとって
データが取得できればこちらのもん!!
※まだ更新の方は試してないですができるでしょう。
ロジックはもうちょっと整理して汎用的に操作できるようにしたいと思います。
あと、
書き込みもテストしてそちらの汎用的な処理も考えたいです。
ではまた次回!