2017-02-05 6 views
0

LitJsonを使用してJsonファイルからデータを読み込み、Unityでメッシュを構築しようとしています。 Jsonデータの一部は、2-Dアーリー(例えば、u'polygon0': [[2, 18.2], [6, 18], [4, 20]],u'polygon1': [[10, 18], [15, 18], [12, 15]],u'polygon2': [[4.746822657198926, 14.948995797109236],[4.500912085144255, 10.506835760070645],[15.500912085144254,10.506835760070645],[16.6, 15.3]])の形をとるポリゴンです。Unityでメッシュを構築するためにJsonを読む

は今、私がすることによって、特定のJSONファイルから読み取ることができています:

//read rectangular 
    for (int k = 0; k < 4; k++) 
    { 
     pol4 npol = new pol4();//pol4 is float(4,2) 
     for (int i = 0; i < 4; i++) 
     { 
      for (int j = 0; j < 2; j++) 
      { 
       npol.pol[i, j] = float.Parse(data[10 + k][i][j].ToString());//data is LitJson.JsonData type 

      } 
     } 
     it.pol4s.Add(npol); 

    } 

しかし、私はあらゆる側面ポリゴンの任意の数を読みたいです。

int polyIndex = 0; 
    while (true){ 
     string index = polyIndex.ToString(); 
     string key = "polygon" + index; 
     polyIndex++; 
     try 
     {    
      Debug.Log(data[key]);//data is LitJson.JsonData type 
     } 
     catch (Exception e) 
     { 
      Console.WriteLine("{0} Exception caught.", e); 
      break; 
     } 
     JsonData poly =data[key]; 
     int polySize = poly.Count; 
     float[,] po = new float[polySize, 2]; 

     for (int i = 0; i < polySize; i++) 
     { 
      po[i,0] = float.Parse(poly[i][0].ToString); 
      po [i, 1] = float.Parse(poly [i] [1].ToString); 
     } 
     it.polygons.Add (po);  
    } 

そして、私は次のエラーを取得: public List<float[,]> polygons =new List<float[,]>();と2次元配列のリストとしてそれらを読み取ろう:だから私はこれらを格納するためのリストを定義した「float.Parse(文字列のための最良のオーバーロードされたメソッドの試合を) "には無効な引数がいくつかあります。 フルエラー: error message

私はこの座標をどのように保存するのでしょうか?

答えて

0

ToStringメソッドを呼び出す

 po[i,0] = float.Parse(poly[i][0].ToString()); 
     po [i, 1] = float.Parse(poly [i] [1].ToString()); 

すなわちと

 po[i,0] = float.Parse(poly[i][0].ToString); 
     po [i, 1] = float.Parse(poly [i] [1].ToString); 

を交換します。

+0

ありがとうございました!それは今働く。私はC#と団結に新しいです、そして、この質問はLOLの前に何度も尋ねられたに違いないようです –

関連する問題