# この記事について
個人的備忘録も兼ねてUnityでインスペクタ上でテキストファイルを指定して、そのファイルから結果を取得する方法をいくつか紹介します。
- ・ インスペクタで指定したテキストファイルを読み込み、その中身をstring型として取得する
- ・ インスペクタで指定したテキストファイルを読み込み、CSV形式をJson形式に変換しstring型として取得する
- ・ インスペクタで指定したテキストファイルを読み込み、Json形式をCSV形式に変換しstring型として取得する
# サンプルコードの紹介
下記のコードを空のオブジェクトにアタッチして、そのインスペクタにファイルをドラッグアンドドロップする事で使用する事が出来ます。
# インスペクタで指定したテキストファイルを読み込み、その中身をstring型として取得する
UnityエディターのInspectorウィンドウでファイルをドラッグアンドドロップで選択できるようにするには、Serializableなフィールドを使って、ファイルのパスやリソース参照を保存するスクリプトを作成する必要があります。以下は、この目的のためのスクリプトの基本的な例です。
この例では、TextAssetタイプのフィールド textFile を持たせています。そして、UnityのInspectorで ReadTextFromInspectorコンポーネントを選択し、textFileフィールドにテキストファイルをドラッグアンドドロップで選択できるようになります。 ファイルが選択されていない場合に備えてエラーチェックも行っています。
# インスペクタで指定したテキストファイルを読み込み、CSV形式をJson形式に変換しstring型として取得する
UnityでJSONからCSV、CSVからJSONへの相互変換を行うためのコードを提供します。以下のコード例では、JSONデータをCSVに変換し、CSVデータをJSONに変換する方法を示しています。
まず、CSVデータをJSONに変換するコードです。
このスクリプトでは、InspectorからCSVデータを読み込み、CSVデータをJSONに変換してデバッグログに表示します。
# インスペクタで指定したテキストファイルを読み込み、Json形式をCSV形式に変換しstring型として取得する
次に、JSONデータをCSVに変換するコードです。
このスクリプトでは、InspectorからJSONデータを読み込み、JSONデータをCSVに変換してデバッグログに表示します。JSONデータの各辞書はCSVの行に対応し、辞書のキーはCSVのヘッダーになります。
# さいごに
これらのスクリプトをUnityプロジェクトに追加し、必要に応じてコンポーネントにアタッチして使用できます。また、JSONとCSVのフォーマットに合わせて適宜調整することができます。
これらのコードは基本的なサンプルです。必要があれば個別の用途に合わせて適宜調整して下さい。