私は2つの部分の質問があります。 まず、このようなjsonファイルを書くことができるコードを記述しようとしています。Unity5.3 Json unities new Jsonユーティリティを使用して複雑なJsonオブジェクトを作成する方法
{
"Restaurants":[
{
"Name" : "Asami",
"ID" : 0,
"Plates" :
[
{
"title" : "Plate1 ",
"color" : "Red ",
"price" : 5
},
{
"title" : "Plate1 ",
"color" : "Green ",
"price" : 6
},
{
"title" : "Plate1 ",
"color" : "Blue ",
"price" : 7
},
{
"title" : "Plate1 ",
"color" : "Yellow ",
"price" : 8
}
]
}
]
}
コードは私がsofarです。
using System;
using System.Collections;
using System.IO;
using UnityEngine;
using System.Collections.Generic;
public class UnityJsonTest : MonoBehaviour {
public string aName;
public int aId = 0;
public string aPlate1, aPlate2;
public Color aColor1, aColor2;
public int aPrice1, aPrice2;
// Use this for initialization
void Start()
{
Restaurant1 rester = new Restaurant1();
rester.MainName = aName;
rester.Character1[0].Name = aName;
string rjson = JsonUtility.ToJson(rester);
File.WriteAllText(Application.dataPath + "/player.json", rjson.ToString());
MyClass myObject = new MyClass();
myObject.level = 1;
myObject.playerName = "Dr Charles Francis";
string json = JsonUtility.ToJson(myObject);
File.WriteAllText(Application.dataPath + "/test.json", json.ToString());
}
// Update is called once per frame
void Update() {
}
}
[Serializable]
public class MyClass
{
public int level;
public string playerName;
}
[Serializable]
public class Restaurant1
{
public string MainName;
public Character1[] Character1;
}
[Serializable]
public class Character1
{
public string Name;
public int Id;
public Plate1[] Plate1;
}
[Serializable]
public class Plate1
{
public string Title;
public Color Color;
public int Price;
}
MyClass myObject = new MyClass();それ以降は2行になります。それは完全に動作します。これは、Unity Docsの例です。
しかし、私はそれを使用してabitをもっと複雑にしようとしたとき、私は何かを逃したようです。ライン
Restaurant1 rester = new Restaurant1();
rester.MainName = aName; //This works.
rester.Character1[0].Name = aName;
で
は//これは動作しません。私は "NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません"という結果を得ます。 と私は全く理由が分かりません。私はここで間違って何をしていますか?私の質問の2番目の部分は、ユーザーが定義した金額に "プレート"オブジェクトの数を設定できるように、このことを書き込む最善の方法は何ですか?そして、私はそれぞれのプレートオブジェクトを埋めるためにforループが必要だと思いますか?
私はこれに関するサンプルを広範囲に検索しましたが、すべての例はmyClassのように行われています。どのようにもっと複雑なものを構築するかについては説明がなく、非常に簡単です。
君たちはそれは素晴らしいだろう:)事前に
おかげで役立つことができれば。
これは美しいです。私は瞬間があるようにすぐに練習に入れます。ありがとう:) – Oscar