Tips

【Unity】ビルド後の外部ファイルの入出力 – Windows編 –
2019.06.13

【Unity】ビルド後の外部ファイルの入出力 – Windows編 –

Unityで.exeにビルドした後の入出力サンプル


必要な機会に恵まれたのでメモ代わりに。

■要点

Application.dataPath でビルド時に生成されるDataフォルダのパスが取れる。
System.IO あたりのAPIでファイルの入出力を行う。
※ 詳しい解説は下部へ

■環境

Unity2018.3.11を使用しています。
[Unity_317×90]

■コード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using UnityEngine;
using System;
using System.IO;
using System.Text;
 
public class IO_Test : MonoBehaviour {
 
    private string path;
    private string writeTxt = "hello";
    private string fileName = "output.txt";
     
    void Start() {
        path = Application.dataPath + "/" + fileName;
        Debug.Log(path);
        ReadFile();
         
        WriteFile(writeTxt);
    }
 
    void WriteFile(string txt) {
        FileInfo fi = new FileInfo(path);
        using (StreamWriter sw = fi.AppendText()) {
            sw.WriteLine(txt);
        }
    }
 
    void ReadFile() {
        FileInfo fi = new FileInfo(path);
        try {
            using (StreamReader sr = new StreamReader(fi.OpenRead(), Encoding.UTF8)) {
                string readTxt = sr.ReadToEnd();
                Debug.Log(readTxt);
            }
        } catch (Exception e) {
            Debug.Log(e);
        }
    }
 
}

■解説

Windows向けにビルドするとexeが生成されたフォルダの中に「プロジェクト名_Data」フォルダが生成される。「プロジェクト名_Data」フォルダのパスは、C#プログラム内で Application.dataPath と記述することで取得できる。(※これはビルドしたexeからゲームを実行した時の話。Editor上で実行した際は代わりにAssetsフォルダのパスが取得される。)
あとはそのパスと、C#が使えるIO(インプット、アウトプット)のライブラリを使ってファイルの入出力を行う。
この仕掛けを利用すれば、例えばビルドした後でもゲーム内で使用するデータを差し替えたり出来る。

ゲーム制作関連のオススメ連載リンク

とっても手軽なゲーム制作体験!
Unityゲーム開発基礎

実際のリリースゲームを題材にしたハンズオンゲーム制作連載
実践unityゲーム開発

Recent News

Recent Tips

Tag Search