Unityな日々(Unity Geek)

Unityで可視化アプリを開発するための試行錯誤の覚書

ローカルファイルに書き込む

ローカルファイルに書き込む場合は、System.IOのFileクラスを使う。基本的な手順は、
File.CreateText(filepath)
で、ファイルを作成し、
WriteLine(text)
で、一行ずつ書き込むと言うことになる。

最後にClose()でIOを閉じることも忘れずに。

using UnityEngine;
using System.Collections;
using System.IO;	//for File I/O

public class FileIO : MonoBehaviour {
public string file;
	
 // Use this for initialization
void Start () {
	if (File.Exists(file))  { 
            Debug.Log(file+" already exists."); 
            return; //if file exsists, then return 
   	}
   	var sr = File.CreateText(file); 	//File class
    	sr.WriteLine ("This is my file."); 
    	sr.WriteLine ("I can write ints {0} or floats {1}, and so on.", 1, 4.2); 
    	sr.Close(); //close process
	// Update is called once per frame
	void Update () {
        }
}
}

フィルパスは、絶対・相対どちらも可能。ただし、相対パスの場合、エディター内と実行ファイルでは基準点が違うことに注意。エディターではプロジェクトディレクトリが基準点になり、実行ファイルでは実行ファイルが置かれている場所になる。

if(Application.isEditor){
    dir = "publish/output/";
}else{
    dir = "D:/_roadsim_data/";
}

【参考】
TextWriter Class (System.IO)
Can we use System.IO and other .NET classes? | Unity Community