
マイケル
みなさんこんにちは!
マイケルです!
マイケルです!

エレキベア
こんにちクマ〜〜〜

マイケル
今回は ExcelからScriptableObjectに変換するツール、
「Unity Excel Importer Maker」の使い方について紹介するよ!
「Unity Excel Importer Maker」の使い方について紹介するよ!
tsubaki / Unity-Excel-Importer-Maker – GitHub

エレキベア
むむ、それは便利そうクマね〜〜〜
でも何でわざわざExcelファイルから作るクマ??
でも何でわざわざExcelファイルから作るクマ??

マイケル
Unityでデータ管理して使う分にはScriptableObjectが相性がいいんだけど、
大量データの入力には向かないという欠点もあるんだ。
そこでExcel入力にして変換することでその欠点を軽減できるというわけさ!
大量データの入力には向かないという欠点もあるんだ。
そこでExcel入力にして変換することでその欠点を軽減できるというわけさ!

エレキベア
なるほどクマ〜〜〜
Excel入力 x ScriptableObjectが強いわけクマね
Excel入力 x ScriptableObjectが強いわけクマね

マイケル
ちなみにマスタデータを待たせるにあたって、どの形式に持たせた方がよいかについては
下記記事がすごく分かりやすいです!
下記記事がすごく分かりやすいです!
【Unity】ScriptableObjectにマスタデータを持たせるメリットについて

マイケル
また、ScriptableObjectの基本的な使い方については
下記記事で一度紹介していますので、こちらもよければご参照ください!
下記記事で一度紹介していますので、こちらもよければご参照ください!

【Unity】ScriptableObjectの活用方法についてまとめる
マイケルみなさんこんにちは!マイケルです!エレキベアこんにちクマ〜〜マイケル今日は、Unity開発で使用すると便利なScriptableObjectについて使い方を紹介しようと思うよ!エレ...
↑ScriptableObjectの使い方

エレキベア
便利だから知っておいて損はないクマね〜〜〜
Unity Excel Importer の使い方

マイケル
というわけで早速使ってみよう!
基本的な使い方
unity packageのインポート

マイケル
まずはGitHubに格納されているunitypackageをダウンロードして
Unityにインポートしましょう!
Unityにインポートしましょう!
tsubaki / Unity-Excel-Importer-Maker – GitHub

エレキベア
同じみクマね
Excelでマスタデータを定義する

マイケル
まずはExcelでマスタデータを定義しましょう!
今回は下記のようなモンスターのデータを定義してみます。
今回は下記のようなモンスターのデータを定義してみます。

マイケル
当初はxls形式のみ対応していたようですが、現在はxlsx形式にも対応しているようです。
なのでどちらかの形式で保存しておきましょう!
なのでどちらかの形式で保存しておきましょう!

エレキベア
ExcelならDBレコードみたいに定義できるクマね
Unityにインポートして設定ファイルを作成する

マイケル
そして次はUnityにExcelファイルをインポート後、
ファイルを右クリック -> XLS import Settings を選択します。
ファイルを右クリック -> XLS import Settings を選択します。

マイケル
すると下記のような設定画面が表示されるため、
取り込む項目と属性を確認してCreateを押下しましょう!
なお、この時のデフォルトのclass名は「Entity_Sheet名」となるようです。
取り込む項目と属性を確認してCreateを押下しましょう!
なお、この時のデフォルトのclass名は「Entity_Sheet名」となるようです。

エレキベア
ここで作成するScriptableObjectの設定を行うクマね

マイケル
作成するとExcelファイルと同じ階層にScriptableObjectが作成されます。
確認してみると値も正常にインポートされていることが確認できました。
確認してみると値も正常にインポートされていることが確認できました。

マイケル
作成されない場合は、Excelファイル右クリック -> Reimport
することで作成されると思います。
することで作成されると思います。

マイケル
なお、ScriptableObjectのスクリプトは Assets/Terasurware/Classes フォルダ配下に作成されます。

マイケル
構造はこのように、Sheetのリストの中に定義したパラメータのリストが格納される状態になるようです。

エレキベア
複数シートにまたいでデータを定義することもできるクマね
Scriptから操作する

マイケル
スクリプトからは下記のように操作することができます。
データの持ち方さえ確認しておけば、普通のScriptableObjectの扱いと変わりありません。
データの持ち方さえ確認しておけば、普通のScriptableObjectの扱いと変わりありません。

エレキベア
気を付けるのはシートが挟まっていることくらいクマね
Repositoryクラスでの管理

マイケル
また、下記のように別途Repositoryクラスを作って切り離して置くことで
参照が散らばることなく管理がしやすくなるためおすすめです。
参照が散らばることなく管理がしやすくなるためおすすめです。
↑Repositoryクラスで管理する

エレキベア
データの持ち方が変わった時にも備えて
アクセス用のクラスは分けておきたいところクマね
アクセス用のクラスは分けておきたいところクマね
おわりに

マイケル
というわけで今回作ったデータを使って作ったものがこちら!!

エレキベア
なんだこれクマ・・・

マイケル
これは適当につくったやつだけど、
一度マスタデータ主体でゲームを作ってみるのも面白いかなと思っているよ!
一度マスタデータ主体でゲームを作ってみるのも面白いかなと思っているよ!

マイケル
それでは今日はこの辺で!!
アデューー!!!
アデューー!!!

エレキベア
クマ〜〜〜〜
【Unity】「Unity Excel Importer Maker」を使ってExcelからScriptableObjectに変換する 〜完〜