:JSONはJSONが
{
"items": [
{
"id": 1,
"Name": "Wood",
"isItem": true
},
{
"id": 2,
"Name": "Stone",
"isItem": true
}
]
}
のように見え、私のアイテムのクラスは次のように定義されて
...メモ帳であなたの「出力」の正確なコピーでありますこのような構成データは、.jsonファイル(テキストファイル)として保存し、the JsonUtility
classを使用することをお勧めします。
JsonUtility.ToJson(yourClass, true)
を設定すると、2番目のパラメータが「prettyPrint」になり、メモ帳などで簡単に編集できます。コードを使用していくつかの「プレースホルダ」アイテムを作成し、.ToJson()
と呼んで最初のファイルを取得し、それを編集して残りを追加することができます。
[Serializable]
public class MyItem
{
public int Id;
public string Name;
public bool isItem;
}
[Serializable]
public class ItemsContainer
{
public MyItem[] items;
}
//elsewhere
public void SaveTemplate()
{
List<MyItem> itemList = new List<MyItem>();
itemList.Add(new MyItem { Id = 1, Name = "Wood", isItem = true });
itemList.Add(new MyItem { Id = 2, Name = "Stone", isItem = true });
ItemsContainer itemsContainer= new ItemsContainer();
itemsContainer.items = itemList.ToArray();
string json = JsonUtility.ToJson(itemsContainer, true);
YourFunctionToSaveTheTextSomewhere(json);
}
これはちょうど私が管理
public MyItem[] GetItems()
{
string json = GetJsonTextSomehow();
ItemsContainer container = JsonUtility.FromJson<ItemsContainer>(json);
return container.items;
}
を行い、あなたが戻って取得し、その後に複数の項目を編集して追加することができます
{
"items": [
{
"Id": 1,
"Name": "Wood",
"isItem": true
},
{
"Id": 2,
"Name": "Stone",
"isItem": true
}
]
}
に似てJSONテキストを作成します。 jsonのテキストを持つことができますが、私はどのようにID 45を呼び出すことができ、その仕様からオブジェクトを作成できますか?そのために
アイテムのIDをキーとされた辞書の中にデータをロードしたいと思うでしょう、あなたのコードは、この
public class ItemManager : MonoBehavior
{
private Dictionary<int, MyItem> _itemDict;
public void Awake()
{
var items = GetItems();
//Makes a new dictionary from the array using the field Id as the key.
_itemDict = items.ToDictionary(x => x.Id);
}
public MyItem GetItem(int itemId)
{
return _itemDict[itemId];
}
private MyItem[] GetItems()
{
string json = GetJsonTextSomehow();
ItemsContainer container = JsonUtility.FromJson<ItemsContainer>(json);
return container.items;
}
private string GetJsonTextSomehow()
{
//...
}
}
のようになります。いいですね。 Entity Frameworkについて聞いたことがありますか? – GolezTrol
いいえ、私はそれを見てみましょうか? – Ay0m3
Entity FrameworkがUnity3dで動作するかどうかわかりません。 .jsonファイル(そのテキストファイル)と[JsonUtility'クラス(http://docs.unity3d.com/Manual/JSONSerialization.html)]を使用して保存することを考えましたか? –