データのローカル保存方法【Unity】

はじめまして、フリーランスのますみです!

一人一人が自立・共存・革新している「クリエイターエコノミー」を創る。』というビジョンに向けて活動しています。

この記事では、Unity上のデータをローカルにCSV形式で保存する方法を紹介します。

また、保存する際に、タイトルが被ってしまうと困るため、ファイル名に保存したときの日付と時間がファイル名に挿入される関数を作っていきます。

関数の作成

まず以下のように、saveFunction.csというファイルを作ります。

createScript

次に、以下のようなコードを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という文字列が格納されていれば(写真③)完璧です。

startFunction
写真①
confirmResult1
写真②
confirmResult2
写真③

これで以上です。

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

最後に

いかがだったでしょうか?
この記事を通して、少しでもあなたの困りごとが解決したら嬉しいです^^

おまけ(お知らせ)

エンジニアの仲間(データサイエンティストも含む)を増やしたいため、公式LINEを始めました🎉

「一緒に仕事をしてくれる方」「友だちとして仲良くしてくれる方」は、友だち追加をしていただけますと嬉しいです!(仲良くなった人たちを集めて、「ボードゲーム会」や「ハッカソン」や「もくもく会」もやりたいなと考えています😆)

とはいえ、みなさんにもメリットがないと申し訳ないので、特典を用意しました!

友だち追加後に、アンケートに回答してくれた方へ「エンジニア図鑑(職種20選)」のPDFをお送りします◎