前提・実現したいこと
Unityで、オブジェクトの移動座標データ(x,y,z)をcsvファイルに書き出しました。書き出したcsvファイルの座標データをシーンに再び読み込んで、移動軌跡を描画する方法を探しています。
発生している問題・エラーメッセージ
エラーメッセージ NullReferenceException: Object reference not set to an instance of an object Plot.Start () (at Assets/Plot.cs:17)
該当のソースコード
using System.Collections.Generic; using System.IO; using UnityEngine; public class Plot : MonoBehaviour { private TextAsset csvFile; //CSVファイル private List<string[]> csvDatas = new List<string[]>(); // CSVの中身を入れるリスト private Vector3 _vector; //plotする点の座標 private GameObject ten; //plotする点 [SerializeField] //Inspectot上で指定 GameObject prefab; //plotする点の中身みたいなの void Start() { TextAsset csvFile = Resources.Load("testCSV") as TextAsset; //Asset/Resourcesにあるcsvfileをテキストファイルとしてloadする StringReader reader = new StringReader(csvFile.text); //読み込み while (reader.Peek() != -1) { string line = reader.ReadLine(); //1行ずつ読み込み csvDatas.Add(line.Split(',')); // リストに入れる _vector = new Vector3(float.Parse(csvDatas[csvDatas.Count - 1][0]), float.Parse(csvDatas[csvDatas.Count - 1][1]), float.Parse(csvDatas[csvDatas.Count - 1][2])); //点の座標 ten = Instantiate(prefab, _vector, Quaternion.identity); //点を作成 } } // Update is called once per frame void Update() { } }
試したこと
このサイトに記載されていた三次元座標をプロットする方法を真似してやってみたのですが、自分自身でエラーが解決できませんでした。
補足情報(FW/ツールのバージョンなど)
エラーが出ている17行目は
StringReader reader = new StringReader(csvFile.text); //読み込み
です。
回答1件
あなたの回答
tips
プレビュー