【Unity】オブジェクトを文字列化(Json化)しよう!

Unity Unity

オブジェクトを文字列化(Json化)しよう!

今回は、Jsonについて解説します。

例えば、データを保存する際、クラスのままでは保存することができませんが、Jsonによってクラスを文字列に変えることで、データを保存することができるようになります。

こういった場合などでJsonを扱うことがあります。

Jsonを使ってみよう!

今回は、プレイヤーデータをJson化して復元します。

Json化とは?

クラスやオブジェクトを文字列に変換するものです。

逆にJson化したものからオブジェクトを作成することもできます。

関数

FromJson Jsonからオブジェクトを作成
FromJsonOverwite Json化したものから読み取ることでオブジェクトデータを上書き
ToJson オブジェクトのパブリックフィールドのJson化したものを生成

スクリプトを作成

今回は、Json化するスクリプトを書いていきます。

Assets→Create→C#Script

AddScript

今回はPlayerデータを設定しJson化します。Json化する際には、よくスクリプト名にUtilityとつけるので、スクリプト名は、PlayerUtilityとします。

PlayerUtilityスクリプト

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerUtility : MonoBehaviour
{

void Start()
{
//Json化
PlayerInfo playerInfo1 = new PlayerInfo();
playerInfo1.name = "Unity";
playerInfo1.level = 5;
playerInfo1.hp = 50;
string json = JsonUtility.ToJson(playerInfo1);//playerInfoをJson化
Debug.Log(json);

//Json化したものを復元
PlayerInfo playerInfo2 = PlayerInfo.CreateFromJSON(json);
Debug.Log("player2");
Debug.Log(playerInfo2.name);
Debug.Log(playerInfo2.level);
Debug.Log(playerInfo2.hp);
}

}

//プレイヤーデータ
[System.Serializable]
public class PlayerInfo
{
public string name;
public int level;
public int hp;

public static PlayerInfo CreateFromJSON(string jsonString)
{
return JsonUtility.FromJson<PlayerInfo>(jsonString);
}

}

こちらは、プレイヤーデータをJson化して復元するスクリプトになります。

GameObjectを追加

GameManagerスクリプトを作成しましたが、Assetsフォルダ内にあるだけでは使えないので、使うためのオブジェクトを追加します。

Hierarchy→Create Empty

Add-GameObject

GameObjectにPlayerUtilityスクリプトをドラックアンドドロップして追加します。

Add-PlayerUtility

 

これで準備が整いました。

実行結果

Json化されたデータは”データ”と表示され、復元されたデータには、””がついていません。

実行結果

Json化して復元することができました。

【Unity】データ保存(セーブ)機能を実装しよう!
今回は、データ保存機能を実装します。 データ保存機能とは、ゲームを終了しても、保存してあるデータを読み込み続きからゲーム行うことができます。 基本的にどんなゲームを作る際でも必ず必要な機能になるので、しっかりと覚えましょう!

こちらの記事のと合わせることで、データをJson化して保存することができます。

まとめ

今回は、Json化の方法と復元する方法を解説しました。

データ保存機能を実装する際に必要になるので扱えるようにしましょう!

コメント

タイトルとURLをコピーしました