見出し画像

【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分で終わる。

これは神のツールだ。

いいなと思ったら応援しよう!