▶
【Unity】3Dアクションゲームを作ろう!#7 ステージの作成(Skybox・落下判定)
▶
【Unity】3Dアクションゲームを作ろう!#8 ステージの作成(スイッチ・扉)
▶
【Unity】3Dアクションゲームを作ろう!#9 プレイヤーのHP管理
▶
【初心者Unity】JsonUtilityクラスでJSONを扱う方法
▶
【初心者Unity】スクリプトからコンポーネントを追加する方法
Unityで.exeにビルドした後の入出力サンプル
必要な機会に恵まれたのでメモ代わりに。
■要点
Application.dataPath でビルド時に生成されるDataフォルダのパスが取れる。
System.IO あたりのAPIでファイルの入出力を行う。
※ 詳しい解説は下部へ
■環境
Unity2018.3.11を使用しています。
[Unity_317×90]
■コード
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】3Dアクションゲームを作ろう!#7 ステージの作成(Skybox・落下判定)
▶
【Unity】3Dアクションゲームを作ろう!#8 ステージの作成(スイッチ・扉)
▶
【Unity】3Dアクションゲームを作ろう!#9 プレイヤーのHP管理
▶
【初心者Unity】JsonUtilityクラスでJSONを扱う方法
▶
【初心者Unity】スクリプトからコンポーネントを追加する方法
ゲーム制作関連のオススメ連載リンク
とっても手軽なゲーム制作体験!
Unityゲーム開発基礎
実際のリリースゲームを題材にしたハンズオンゲーム制作連載
実践unityゲーム開発