【Unity】CSVエクスポート機能を実装する
Unity製の収支管理アプリを複数リリースしてるんだが、そこにCSVエクスポート機能を実装することにした。
ユーザーから言われることもあるし、上位アプリは、みんな実装してるもんな。
そんなわけで、ChatGPT先生に聞きつつサクッと作ってみた。
適当なボタンを用意する。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using System.Text;
public class CSVExporter : MonoBehaviour {
// CSVファイルのパス
private string filePath;
private void Start() {
// 実行環境に応じてCSVファイルのパスを設定
#if UNITY_EDITOR
filePath = Path.Combine(Application.dataPath, "OutputData.csv");
#else
filePath = Path.Combine(Application.persistentDataPath, "OutputData.csv");
#endif
}
// CSVファイルにデータを書き込むメソッド
public void WriteToFile(string data) {
// ファイルが存在しない場合、新しいファイルを作成
if (!File.Exists(filePath)) {
File.WriteAllText(filePath, data + "\n", Encoding.UTF8);
}
// ファイルが存在する場合、データの重複をチェック
else {
string existingData = File.ReadAllText(filePath, Encoding.UTF8);
if (!existingData.Contains(data)) {
File.AppendAllText(filePath, data + "\n", Encoding.UTF8);
}
}
}
// データをCSVファイルに書き込むサンプル
public void WriteSampleData() {
WriteToFile("Name,Score,Time");
WriteToFile("John,100,10:00");
WriteToFile("Jane,200,20:00");
WriteToFile("Tom,150,15:00");
}
// CSVファイルを他のアプリにシェアする
public void ShareCSVFile() {
NativeShare share = new NativeShare();
share.AddFile(filePath);
share.SetTitle("Share CSV File");
share.SetText("Here is the CSV file.");
share.Share();
}
public void PushButtonExport() {
// CSVファイルにデータを書き込む
WriteSampleData();
// CSVファイルを他のアプリにシェアする
ShareCSVFile();
}
}
NativeShare share = new NativeShare();
この部分がエラーになるので、下記サイトからUnityNativeShare-masterをダウンロードしよう。
https://github.com/yasirkula/UnityNativeShare
PushButtonExport()をボタンと紐づければOK。
これだけで適当にエクスポート出来るようになった。
しかしChatGPTはヤバいわ。
全然知らない処理を実装するときとか、本当に役に立つ。
3日くらいかかりそうなものも、30分で終わる。
これは神のツールだ。