|
■No84541 (emu さん) に返信
CSVファイルはこっちへ置いておくとして、最初の投稿の
> //-----------------------------------------
> public data1(double q, double a1)
> {
> this.q = q;
> this.a1 = a1;
> }
> //-----------------------------------------
このコードだと、ソース(この場合はソースコードの意味もあるけど、元ネタという意味で)
が足りなくて、ちょっと推測というより推理する感じになっちゃってましたね。
> //-------------------------------------------------
> public List<data1> qtArray;
> public csvreadp(string data1)
> {
> this.qtArray = new List<data1>();
> StreamReader sw = new StreamReader(data1, System.Text.Encoding.UTF8);
> string line;
> while ((line = sw.ReadLine()) != null)
> {
> string[] strs = line.Split(',');
> if (strs.Length != 2) continue;
>
> double a= Double.Parse(strs[0]);
> double b= Double.Parse(strs[1]);
> qtArray.Add(new data1(a, b));
>
> // Debug.Log("q:" + a + ", a:" + b);
> }
> //-----------------------------------------------------
合わせて読むと data1 が座標をあらわすクラスで、最初のコードは data1 のコンストラクタ
で、その中に q と a1 という( X と Y にあたるのかな)座標を定義している…ということ
でしょうか。
今回出てきたコードと合わせて読むことでなんとなくそこまで『推測』できるぐらいになりましたが
最初のコードでは、やはり『推理』レベルだと思いました。動きが読み取れる程度の最低限の
コードを提示していただければと思います。
そして合わせて読んでみた限りですが CSV ファイルを読んだ結果得られるのは data1 クラス
のリストで、結論から言うとこれは 2 次元配列ではないですね。 1 次元配列です(正確に言うと
配列でもないですが)。
最初の投稿にあったコード
> //---------------------------------------------------------
> for (int idx = 0; idx < 100; idx++)
> {
> Point.Add(new Vector2(q[idx],a1[idx]));
> }
> //---------------------------------------------------------
の意図(のようなもの)を解釈するとすれば、こんな感じになるんじゃないでしょうか。
(よく見ると idx でループしているので、これも2次元ではないですね)
for (int idx = 0; idx < 100; idx++)
{
Point.Add(new Vector2(data1[idx].q, data1[idx].a1));
}
自分は Unity は触ったことがないのでわからないですが、むしろ 1 次元だ 2 次元だというより
「なぜこういうコードなのか」「このコードはどういう意図で書かれているのか」をもう少し
理解するように努めたほうがいいのかな…という気はしました。
|