作品とかライフログとが忘備録とか

Unityからjsonファイルの読み込みと注意点

2014 年 9 月 8 日

0


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で読む場合、バイナリで書いちゃダメ。たぶん。

以上です。

/ takuma

コメントを残す

メールアドレスが公開されることはありません。

プロフィール

タクマ

フリーランスのグラフィックデザイナー

グラフィック,映像,Web,UIなど

元3DCGCGアニメーター

Gallery

hum.id ヒューム・アイディ

takuma http://hum-id.jp/

ヒューム・アイディについて/ご連絡