2017-08-26 17 views
0

私はカスタムクラスとDangersの2つのリストを含むカスタムクラスMapを持っています。問題は、私のコードがそのカスタムクラスに要素を追加していないことです。 Debug.Logからの出力としてリストに追加しない項目

public class Map 
{ 
    public string mapName; 
    public List<Brick> bricks; 
    public List<Danger> dangers; 

    public Map() 
    { 
     bricks = new List<Brick>(); 
     dangers = new List<Danger>(); 
    } 
} 

public class Brick 
{ 
    public Vector2 Position; 
} 

public class Danger 
{ 
    public Vector2 Position; 
} 
private void CreateMap() 
{ 
    Map map = new Map(); 
    map.mapName = "test"; 

    map.bricks.Add(new Brick { Position = new Vector2(1, 1) }); 
    map.bricks.Add(new Brick { Position = new Vector2(2, 1) }); 
    map.bricks.Add(new Brick { Position = new Vector2(5, 1) }); 
    map.bricks.Add(new Brick { Position = new Vector2(6, 1) }); 
    map.bricks.Add(new Brick { Position = new Vector2(7, 1) }); 

    map.dangers.Add(new Danger { Position = new Vector2(3, 1) }); 
    map.dangers.Add(new Danger { Position = new Vector2(4, 1) }); 

    Debug.Log(JsonUtility.ToJson(map)); 
    AddMap(map); 
} 

私はそれがオブジェクトをシリアル化のタイプのためだと思う{"mapName:": "test"}

+0

これはJsonUtilityと関係があると思います。 AddMap行にブレークポイントを設定し、map.blicksが実際に空であるかどうかを確認します。 – Jeffrey

+1

この回答を確認https://stackoverflow.com/a/34274465/2189031 – Mitya

+0

コードはVS 2015で正常に動作します。上記のコメントを参照 – Jeffrey

答えて

0

を取得します。 [Serializable]属性をクラスに追加して再試行してください。私はそれをVectorプロパティにも追加する必要があると思います。

関連する問題