前提・実現したいこと
Unityで自由落下のリプレイ機能を作っています。
具体的には、Unity上で取ったデータをCSVファイルに保存し、必要な時に選択して呼び出そうと考えています。
今呼び出したデータをstring型からfloat型に直そうと思っているのですが以下のようなエラーがでてきてしまいました。
おそらく初歩的なミスだと思うのですが、よろしくお願いします
発生している問題・エラーメッセージ
エラーメッセージ 'Array.ConvertAll<TInput, TOutput>(TInput[], Converter<TInput, TOutput>)' の型引数を使い方から推論することはできません。型引数を明示的に指定してください。 Assembly-CSharp C:\Unity\Planet Physics\Assets\Script\CSVReader.cs 32
該当のソースコード
ソースコード using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Text; using System.IO; using System; public class CSVReader : MonoBehaviour { private List<string[]> csvDatas = new List<string[]>(); // CSVの中身を入れるリスト; private List<float[]> Datas = new List<float[]>(); //ファイルの中身をfloat型にする public void ReplayButton() { int height = 0; string file = "aaaa"; StreamReader reader = new StreamReader(file+".csv", Encoding.GetEncoding("Shift_JIS")); while (reader.Peek() != -1) // reader.Peaekが-1になるまで { string line = reader.ReadLine(); // 一行ずつ読み込み csvDatas.Add(line.Split(',')); // , 区切りでリストに追加 height++; } Datas = Array.ConvertAll(csvDatas, float.Parse); } }
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
とりあえずArray.ConvertAllの引数と戻り値についてちゃんと見ることをおすすめします。
配列を引数にとって配列を返すメソッドですよ。
本題とはズレますが・・・
> string line = reader.ReadLine();
> csvDatas.Add(line.Split(','));
そういう簡易的な方法で問題ないのですか? フィールドの中に改行やカンマが含まれていたらたちまち破綻します。そういう CSV ファイルは絶対ないと言う前提条件があれば話は別ですが。
もし破綻する可能性があるなら、そういうコードで話を進めても時間の無駄なので聞いてます。
回答1件
あなたの回答
tips
プレビュー