主なコンテンツ

〜主なコンテンツ〜

1. Unityで製作したゲームと製作Tips
  1. 三月精チャレンジ(東方Project二次創作)
    1. 作り方
  2. 英語学習2D(オリジナルスマホアプリ)
2. UE4
3. ゲームアプリ見学
4. Bitbucket & SourceTreeでの一連の流れ
  1. 前半
  2. 後半
5. Tips
  1. UnityのTips
  5. SQL文のTips
  6. Final IK
  7. GearVR+Unity

2017年4月10日月曜日

Unityにてjsonでセーブ&ロードしてみる(Json Utillity)

下記2サイトを参考にサンプルを作ってみた。
  • JsonUtilityを使ったデータ保存(サイト
  • JsonUtility をつかって Unity で JSON を取り扱う方法(サイト

ソース
using UnityEngine;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
public class JsonTest : MonoBehaviour
{
//---
[System.Serializable]
public class Item
{
public int id;
public string name;
public string description;
}
//---
string savePath = "Assets/Test/JsonTest/saveData.json";
// Use this for initialization
void Start ()
{
string itemJson = "{ \"id\": 100, \"name\": \"テストアイテム\", \"description\": \"説明だよ\" }";
Item item = JsonUtility.FromJson<Item>(itemJson);
save(item);
TestLog(item);
Debug.Log("---");
item = load();
TestLog(item);
}
//セーブ
private void save(Item item)
{
string json = JsonUtility.ToJson(item);
BinaryFormatter bf = new BinaryFormatter();
FileStream file = File.Create(savePath);
bf.Serialize(file, json);
file.Close();
}
//ロード
private Item load()
{
BinaryFormatter bf = new BinaryFormatter();
FileStream file = File.Open(savePath, FileMode.Open);
string json = (string)bf.Deserialize(file);
file.Close();
return JsonUtility.FromJson<Item>(json);
}
//確認用のログを表示
private void TestLog(Item item)
{
Debug.Log("item id " + item.id);
Debug.Log("item name " + item.name);
Debug.Log("item description " + item.description);
}
}
view raw JsonTest.cs hosted with ❤ by GitHub


実行結果

尚、unityのエディタ上にファイルが表示されるのには少し時間がかかった。

0 件のコメント:

コメントを投稿