テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

Excelでデータを管理してUnity iOS/Androidで使うワークフロー

前回の応用で、Excelの中身をScriptableObjectとして保持するようにした。

tsubakit1.hateblo.jp

より良い方法があったので、そちらをどうぞ。
tsubakit1.hateblo.jp

Excelみたいなデータとして大きく効率が悪いフォーマットからランタイムで引っ張ってこようとすると、馬鹿みたいに時間がかかってしまうし、メモリも食い散らかしてしまう。

ScriptableObjectにすれば効率的にResourcesから動的に読み込んだり、シーン内に組み込んだりできる。それにJSONより小さい(バイナリベースなので)

そして何よりAndroid/IOSで使用できる。ScriptableObjectはUnityの基本機能なので、AOTだろうがJITだろうがiOSだろうがAndroidだろうがBasicだろうが関係なく使用出来る。
(この手の物はAOT≒iOSで動かない事がけっこう多い)

なので、Excel更新時にScriptableObjectに流しこむ部分を自動化した。

参考はコレ

unity3d-jp/XmlToCustomAsset
https://github.com/unity3d-jp/XmlToCustomAsset


作成したパッケージはコレ。

一連のパッケージ
https://dl.dropboxusercontent.com/u/56297224/UnitySumple2/Excel%E9%80%A3%E6%90%BA/excel%20sample.unitypackage

新型・一連のパッケージ
https://dl.dropboxusercontent.com/u/56297224/UnitySumple2/Excel%E9%80%A3%E6%90%BA/excel%20sample2.unitypackage

なお入力するExcelData.xlsや出力するExcelData.assetのパスは固定なので、変更しないように注意。


遊び方はこんな感じ

スクリーンショット 2013-06-27 23.20.36
ExcelData.xlsを開く。OpenOfficeやOfficeがあれば開ける。


スクリーンショット 2013-06-27 23.20.58
中身を書き換える。絵はOpenOffice


スクリーンショット 2013-06-27 23.21.06
UnityEditorに戻ると自動的にExcelData.xlsが再インポートされ、ExcelData.asstが出力される。以降、Excel.xlsが変更される度にExcelData.assetの中身を変更する。


スクリーンショット 2013-06-27 23.21.16
ScriptableObjectに流し込んだ図。入力不可なのはscriptableObjectのhideFlagsをHideFlags.NotEditableに設定しているため。
(ワークフロー的に簡単に上書き出来てしまう場合混乱するので、逆方向は無しにした)


スクリーンショット 2013-06-27 23.21.31
ScriptableObjectに流し込んだので、参照を与えるだけでゲームから読み込める。


ツィート数が2桁以上あったらもう少し詳しく書こうかな(チラ