Windows,UNIX用にビルドすると上手く読んでくれない事が判明しました。
ビルドしても読めるファイルストリームを使った読み方を投稿しました。
Unityに外部ファイルを読み込む text asset がうまく動かない時
Unityでjsonデータを読み込むテスト。
色々調べた結果Litjsonを使って読み込むことにしました。
C#の知識がなく初めてしまったので苦戦しています。
対処療法的な記録なので参考までに。
最小構成
データの読み込み
TextAsset jsonText = Instantiate (Resources.Load (jsonfilename)) as TextAsset;
デシリアライズ
Tdataはjsonのファイルに対応した変数を持つクラス。
2つ以上のセットがある場合クラス名の後に[]をつけないとダメらしい。
jsonString = jsonText.text; TData[] d = JsonMapper.ToObjec<TData[]>; (jsonString); dataList.AddRange (d);//TDataのジェネリック型dataListに読み込んだjsonデータを追加する
↓も忘れずに。
using LitJson; using System.IO;//読み書き. FileStream using System.Collections.Generic;//ジェネリック(リスト、動的配列)
注意点
- Resources.Loadは、Assetsフォルダ内に作った「Resources」フォルダのファイルを読むらしい。
- TextAssetで読む場合はファイルの拡張子に.txtが付いている且つ、プログラム側でロード時には拡張子を省かないと読んでくれない。
- 同様にTextAssetで読む場合、バイナリで書いちゃダメ。たぶん。
以上です。
コメントを残す