FC2ブログ
    12 «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.31.» 02

    ハルシオンシステムの気ままBlog

    株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

     

    【Unity】そういえばUnityでJSONって簡単に触れるの?どうなの? 数分後「簡単なんですけどぉー!」 JsonUtilityすごいぜ!って話 

    おはようございます。
    今日は朝から1日雨のようですね。
    昼に歯医者があってチョーめんどい坂内っす。

    そういえば今UnityでJSON使うの簡単らしいっすね?
    でもどうなの?JSON触ったことないし!

    ってことで、ちょっと気になったので触ってみました。

    まずはJSONにあるデータ型についてです。
    〇数値
    〇文字列
    〇真偽値
    〇配列
    〇オブジェクト
    〇null

    があるようです。
    また、配列とオブジェクト(連想配列)は、ネスト(入れ子)構造で表現する事ができます。
    まぁ根本はXMLとかと同じなんすよね?そうなの?

    なんか適当にJSONを作ってみました。
    {
    "name":"よしだ",
    "age":18
    }


    こんなのをUnityで読み込んでみましょう。
    上記のテキストファイルをUTF-8で「test1.txt」という名前でResourcesフォルダの下に置きます。
    ※ちなみにはじめはJISだったんだけど、Unityで読み込んだら日本語取れなかったんで、UTFにしました。

    まずは、Jsonで渡されるItemを格納する用クラスを生成します。
    【users】
    using System;

    [Serializable]
    public class users {
    public string name;
    public int age;
    }


    適当にテキストを1個用意して、以下のコードをCanvasでもCameraでもどっかに貼り付けます。



    【JsonUtil】
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;

    public class JsonUtil : MonoBehaviour {

    public Text txtString;

    void Start() {
    TextAsset txtData = Resources.Load("Json/test1");
    string textJson = txtData.text;

    users item = JsonUtility.FromJson(textJson);

    txtString.text = item.name + "\r\n" + item.age;
    }
    }


    はーい!簡単!


    出ました出ました。

    JsonUtilityという素敵なAPIがUnity5.3から入ったようですね!

    逆にJSONにするにはJsonUtility.ToJson()を使えばできるようです。

    【JsonUtil】
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;

    public class JsonUtil : MonoBehaviour {

    public Text txtString;

    void Start() {
    TextAsset txtData = Resources.Load("Json/test1");
    string textJson = txtData.text;

    users item = JsonUtility.FromJson(textJson);

    txtString.text = item.name + "\r\n" + item.age;
    }

    public void OnClickToJSON() {
    users item = new users();
    item.name = "はるしおん";
    item.age = 4;

    string json = JsonUtility.ToJson(item);
    Debug.Log(json);
    }
    }


    ボタンを押すとOnClickToJSONが呼ばれるようにして、上記コードを呼ぶとこんな感じ!



    素晴らしいっすね!

    でもこれってクラス(今回はusersクラスを用意)し、そのフィールドだけが対象になっています。
    なので、しらないものがJSONに入っていると無視されるっぽいっす。
    エラーが出ないだけましですよね!想定内の物のみを取得します。

    これで色々とJSONのファイルをいじっていけますね!

    そんな感じで、ネタがないので無理やり書いてみました!
    あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    コメント

    コメントの投稿

    Secret

    トラックバック

    トラックバックURL
    →http://halcyonsystemblog.jp/tb.php/387-649a15b1
    この記事にトラックバックする(FC2ブログユーザー)