CSVUtilityの使い方【Unity+CSVファイル】

CSVのデータをゲームで利用したい場合のアセットの使い方。クラスの準備が必要ですが、csvファイルのデータをそのまま使えたり、データの追加が簡単なのがポイントです!

目次

CSVUtilityで出来ること

こちらのアセットで出来ることは基本的にCSVファイルとプログラムの連携です。

  • CSVファイルのデータをプログラムでロードする
  • プログラムのリストデータをCSVファイルに書き出す

ファイルの書き出しに関しては、PersistentDataPathに保存を行うため、スマホでの保存を行うことも可能です。

CSVファイルで扱うためのデータ準備

パッケージを手に入れる

CSVを簡単に使うためのパッケージをインポート。

パッケージマネージャーの左上の+ボタンから「Add package from git URL…」を選択して、以下のURLを入力してください

git+https://github.com/everystudio/ucp.csvutility.git

うまくいかない場合は、Githubのアカウントを作成・ログインを行うか、下記URLから「Code>Download ZIP」からプロジェクトをダウンロードして、Unityプロジェクトに追加しても利用可能です。

https://github.com/everystudio/ucp.csvutility

扱えるデータの型

CSVUtilityで扱えるデータの型は以下になります

  • int
  • float
  • bool
  • string

最悪stringがあるのでうまいことやれるはず。

サンプルデータ

次の項目でcsvファイルのロードテストを行ったりするのに使うデータを準備したいと思います。

今回取り扱うサンプルデータは以下

変数名
inttest_int
floattest_float

で、上記テーブルにあるデータをCSVUtilityで扱いたい場合、次のようなスクリプトを準備してください。

using anogamelib;

public class SampleModelParam : CsvModelParam
{
    public int test_int;
    public float test_float;
    public override string ToString()
    {
        return $"test_int={test_int} test_float={test_float}";
    }
}

ToStringは後でデバッグ表示を見やすくしたいだけです。他にもbool型やstring型を追加してもい良いですし、2つのint型を追加することも出来ます。

CSVファイルの読み込み

CSVファイルの読み込みはいくつかの方法があります。

  • TextAssetから読み込む
  • PersistentDataPathにあるファイルを読み込む

csvファイルを用意する

先程用意したSampleModelに対応したcsvファイルを用意します。テキストファイルや表計算ツールを使ってcsvファイルを準備します。データは下図のような形式になっていればOK。

TextAssetからロードする

個人的には一番使いやすい方法かと思います。DemoScriptファイルを作成し、以下のようなスクリプトを準備します。

using UnityEngine;
using anogamelib;

public class DemoScript : MonoBehaviour
{
    [SerializeField] private TextAsset localCsvFile;
    private void Start()
    {
        CsvModel<SampleModel> sampleModel = new(localCsvFile);
        sampleModel.CheckDebugLog();
    }
}

準備できたらシーン内のGameObjectにアタッチ。インスペクターにテキストアセットをセットする箇所が出来るので、作成したcsvファイルをセットしてください。ゲームを実行すると、以下のようなログが表示されます。

PersistentDataPathからロードする

こちらはインスペクターのセットを必要としないファイルロードになります。PCで試す場合は、事前に「C:\Users\{ユーザー名}\AppData\LocalLow\{プロジェクトのカンパニーネーム}\{プロジェクト名}」のフォルダにcsvファイルを配置してください。下図は私の環境でtest_file.csvというcsvファイルを設置しています。

以上の設定が完了したらスクリプトにロードする処理を書き加えましょう。先程のプログラムを変更します。変更ついでに各パラメータに直接アクセスする方法も覚えましょう。

ログは1行ごとに分割されますが、foreach文で各データへアクセスすることが出来るのが確認できたと思います。

CSVファイルを保存する

セーブデータの様に、変更したモデルデータを再びcsvファイルに保存・エクスポートすることが可能です。

下記スクリプトを参考に用意してください。下記スクリプトではテスト用データを2つ追加し、”save_file”というファイル名で保存を行います。デバッグログに保存されたパスも表示されますので、保存先のファイルを確認して見てください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次