http://kimsama.github.io/excel-howto/
- 表データはある
- ScriptableObjectにしたい
- 管理はExcelでしたい
- 上に書いてあるようにやればできた
- シート名はクラス名になるので、デフォルトのSheet 1(スペースを含む)だと生成コードで文法エラーになる
- MacのPagesでxls出力はできるが、上書き保存はしづらい
- Google Spreadsheetにも対応している
- この前にG2Uというアセットも使ってみたが、生成コードに列名がデータ数分だけ書かれて長かったので、今回はQuickSheetを使ってみた
- ScriptableObjectができた
- 他のコードから使用する例
public FirstNameSheet firstNameSheet; // インスペクタからScriptableObjectを参照しておく ... // リストからランダムに名前取得 private string GetRandomName(){ int index = Random.Range (0, firstNameSheet.dataArray.Count() - 1); return firstNameSheet.dataArray[index].Firstname; }
12/18追記
- Mac Numbersでデータの表を作る。表のタイトルは消す
- 不要な列と行も消す
- xlsで出力する
- デフォルトの形式じゃないので上書き保存できず、少し手間 (この改善にはMac版Excelを買うしかない?)
- インポートの設定ファイルは1つ
- 出力先ディレクトリを作成しておく
- 設定ファイルからGenerate実行
- まずクラス生成
- 次に、ExcelをUnityからReimportするとScriptableObjectが作成される
フローとしては、
- 企画がxlsを更新してコミット
- エンジニアが落としてくる, UnityでReimportで更新
で済む。Reimportだけで全部更新できるのがGood.
xlsをもっと気軽に更新したい
- 環境はMac
- 1人で開発しているときは頻繁にxlsを書き換えて実行を繰り返す
- NumbersでExportは避けたい
- そこで... OpenOffice
- xlsを開いてそのまま上書きできる
- xlsは開きっぱなしにしておいて、上書きし、Unity側でReimport
- また調整したくなったら開いているxlsを書き換える
- 結構手軽になったね!