【コピペで簡単】Unityのデータをローカルに保存する方法!
[ Updated at 2018/7/9 ]
Unity

はじめに

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

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

 

作り方について

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

createScript

 

  1. 次に、以下のようなコードをsaveFunction.csの中に書いていきます。ここでは、CSVSaveという関数の中にデータと保存時のファイル名を引数として渡しています。
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");
    }
}

 

  1. 最後に、Unityを実行して、sampleTextという文字列の入ったCSVデータが保存されているか確認しましょう。以下(写真①)のように実行を行い、Consoleに"Save Completed"と表示され(写真①)、かつAssetsの中に保存されていて(写真②)、sampleTextという文字列が格納されていれば(写真③)完璧です。

写真①

startFunction

 

写真②

confirmResult1

写真③

confirmResult2

 

これで以上です。

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

umi-mori
umi-mori