スクリーンショット_2018-09-06_20

Unity で CSV ファイルを書き出す方法

ログデータをとって CSV 形式で書き出したいことってあると思います。
今回はその方法についてです。
いつものように実行できるプロジェクトファイルはこちらに

<CSVWrite.cs>

using UnityEngine;
using System.IO;
public class CSVWrite : MonoBehaviour {
   public int[] logData; // Logデータの宣言
	void Start () {
       logData = new int[] {1, 3, 5, 7, 9}; // 仮のLogデータ
       LogSave(logData, "logData"); // Logデータをcsv形式で書き出す
	}
	
   public void LogSave(int[] x, string fileName)
   {
       StreamWriter sw; // これがキモらしい
       FileInfo fi;
      // Aplication.dataPath で プロジェクトファイルがある絶対パスが取り込める
       fi = new FileInfo(Application.dataPath + "/Resources/" + fileName + ".csv");
       sw = fi.AppendText();
       for (int i = 0; i < x.Length; i++)
       {
           sw.WriteLine ( x[i].ToString() );
       }
       sw.Flush();
       sw.Close();
   }
}

解説

どうやら StreamWriter がキモのようです。
とてもアバウトなイメージなのですが,FileInfo でファイル情報を得て AppendText() メソッドでファイルの末尾にデータを足していけるようになるようです。CreateText() メソッドもあるらしく,これを使うと上書きになるんでしょうか。

質問やあれをまとめて欲しいなどの要望があればコメントに

最後まで読んでもらえて嬉しいです。よければフォローもお待ちしています。サポートは記事を書くときのコーヒーになります。