この記事では、Unity上のデータをローカルにCSV形式で保存する方法を紹介します。
また、保存する際に、タイトルが被ってしまうと困るため、ファイル名に保存したときの日付と時間がファイル名に挿入される関数を作っていきます。
関数の作成
まず以下のように、saveFunction.cs
というファイルを作ります。

次に、以下のようなコードをsaveFunction.cs
の中に書いていきます。ここでは、CSVSave
という関数の中にデータと保存時のファイル名を引数として渡しています。
saveFunction.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System; // DateTimeを使うために必要
using System.IO; // CSV保存をするために必要
public class saveFunction : MonoBehaviour
{ void Start() { // sampleDataを作って、CSVSaveの関数に引数として渡す var sampleData = "SampleText"; CSVSave(sampleData, "sampleFile"); } // CSV形式で保存するための関数 private void CSVSave(string data, string fileName) { StreamWriter sw; FileInfo fi; DateTime now = DateTime.Now; fileName = fileName + now.Year.ToString() + "_" + now.Month.ToString() + "_" + now.Day.ToString() + "__" + now.Hour.ToString() + "_" + now.Minute.ToString() + "_" + now.Second.ToString(); fi = new FileInfo(Application.dataPath + "/" + fileName + ".csv"); sw = fi.AppendText(); sw.WriteLine(data); sw.Flush(); sw.Close(); Debug.Log("Save Completed"); }
}
最後に、Unityを実行して、sampleText
という文字列の入ったCSVデータが保存されているか確認しましょう。以下(写真①)のように実行を行い、Consoleに”Save Completed”と表示され(写真①)、かつAssetsの中に保存されていて(写真②)、sampleText
という文字列が格納されていれば(写真③)完璧です。



これで以上です。
セーブポイントなどを作る時や、研究のデータ取得などにぜひご利用ください。