はじめに
CSV の特定の列をリストにしたり、特定の列をキー・値に持つ辞書を生成できる、Unity 向けのツールを公開しました! 🚀
使い方
CSV からリストを生成する
1. 抽出したい CSV を準備します。
var csv = @" name,model_number,release_date Family Computer,HVC-001,1983-07-15 SUPER Famicom,SHVC-001,1990-11-21 NINTENDO64,NUS-001,1996-06-23 "
上記のように CSV のテキストを直接コードに書いてもいいですし、 Resources.Load<TextAsset>(path).text
などでファイルから取得しても大丈夫です。
2. リクエスト用のデータ CsvExtractRequest を作成します。
var request = new CsvExtractRequest(csv, true, "", 1);
3. 最後に、 CsvUtility.ExtractIntoList()
でリクエストを投げれば、生成されたリストが取得できます。
List<string> list = CsvUtility.ExtractIntoList(request);
CSV から辞書を生成する
1. 抽出したい CSV を準備します(リストのときと同じ)。
2. リクエスト用のデータ CsvExtractRequest を作成します。
このとき、SetKeyColumnIndexes()
で辞書のキーにする列を設定するのを忘れないでください!
var request = new CsvExtractRequest(csv, true, "", 1); request.SetKeyColumnIndexes(0); // <- キーとして抽出する列のインデックスを設定
3. 最後に、 CsvUtility.ExtractIntoDictionary()
でリクエストを投げれば、生成された辞書が取得できます。
Dictionary<string, string> dictionary = CsvUtility.ExtractIntoDictionary(request);
リクエストデータ CsvExtractRequest について
CsvExtractRequest は、以下のメンバーを持っています。
/// <summary> /// CSV のテキスト。 /// </summary> public string Csv { get; } /// <summary> /// true なら、CSV の 1 行目をヘッダーとして扱います。 /// </summary> public bool HasHeader { get; } /// <summary> /// 複数の列が指定された際、この文字で列同士を繋げます。 /// </summary> public string Separator { get; } /// <summary> /// 値として抽出する列のインデックス。 /// </summary> public int[] ValueColumnIndexes { get; } /// <summary> /// キーとして抽出する列のインデックス。辞書を生成するときのみ使用します。 /// </summary> public int[] KeyColumnIndexes { get; private set; } public CsvExtractRequest(string csv, bool hasHeader = false, string separator = null, params int[] valueIndexes) { Csv = csv; HasHeader = hasHeader; Separator = separator; ValueColumnIndexes = valueIndexes; } public void SetKeyColumnIndexes(params int[] indexes) { KeyColumnIndexes = indexes; }
インストール方法
Package Manager を使用する方法
導入したい Unity プロジェクトで Package Manager を開き、「+」ボタンを押して「Add package from git URL...」を選択、以下の URL を入力して「Add」ボタンを押すとインストールできます。
https://github.com/gigacreation/Csv2CollectionsForUnity.git?path=Assets/Csv2Collections
手動でインストールする方法
GitHub のリポジトリからソースコードをダウンロードし、その中の Assets/Csv2Collections/
ディレクトリを導入したい Unity プロジェクトにコピーします。