akyboxブログ

旧AkiIroブログ

Unity-QuickSheet入門 ~SpreadSheetを読みこむ~

Unity-QuickSheetでSpreadSheetを読んでScriptableObjectをつくる.

Unity-QuickSheetとは
github.com

ざっくりExcelやSpreadSheetをScriptableObjectにすることができます.

本家のドキュメントはこちら. Google Howto · Unity-QuickSheet
本記事は大体焼き増しです.

大きく2ステップ

  • OAuthのセットアップ
  • Unity側で受け取りのセットアップ

ドライブにアクセスするためにOAuth2をセットアップ(Setting up OAuth2 for accessing Google Drive)

SpreadSheetを作る

一行目はフィールドの名前に利用されます.
なのでIntとかFloatといった名前はやめましょう.
そしてValueもやめましょう.(体験談)

理由は後々わかりますが,シート名をHogeDataみたいにすると悲しいことになります.(体験談)

OAuth2の設定をする

プロジェクトを作る

このページからやります. http://console.developers.google.com/
プロジェクトを作ります. f:id:AkiIro:20180820231945p:plain 名前とかは適当で大丈夫です.

OAuthClientIDを取得する

f:id:AkiIro:20180820232248p:plain
サービス名を設定する IDの作成にはサービス名の設定が必要だと言われたらおとなしく設定します. f:id:AkiIro:20180820232336p:plain サービス名は適当で大丈夫です.

気を取り直してOAuthClientIDをつくります. f:id:AkiIro:20180820232430p:plain
アプリケーションの種類はその他で名前は適当です.

うまくいけばこんな画面がでるはずです. f:id:AkiIro:20180820232922p:plain
OKで閉じます.

設定用JSONをダウンロードする

ここからダウンロードします. f:id:AkiIro:20180820233345p:plain

手に入れたJSONを使ってClientIDとClientSecretを入力します.
以下のフォルダーにGoogle Data Settingsというアセットがあるはずです.

Assets/QuickSheet/GDataPlugin/Editor

f:id:AkiIro:20180820233039p:plain
I have OAuth2 JsonをチェックしてJSONを参照するとClientIDとClientSecretは自動的に入力されます.
入力されたらStart Authenticationを押します.
ブラウザが開いて進めていくとこんな画面がでます.
f:id:AkiIro:20180820234139p:plain
これがアクセスコードなので,AccessCodeに貼り付けます.
Finish Authencationを押して完了です.

ランタイムパスとエディターパスは公式によると

Runtime Path: Data/Runtime
Editor Path: Data/Editor

これで十分らしいので何も考えず設定します.
後ほどわかりますがRuntimePathはランタイムに使われるスクリプトが置かれ,EditorPathはエディターで使われるスクリプトが置かれます. フォルダーがないと後でエラーします.(つまりこの場合Assets/Data/Runtimeを用意しておく必要があります.)

以上でOAuthのセットアップは完了です.

Unity側でデータを受け取るScriptableObjectを作る

Unity上での操作です.

設定ファイルをつくる(Creating Google Spreadsheet Setting File)

f:id:AkiIro:20180820234508p:plain
場所はどこでもいいですが,私はToolというフォルダを作りました.
f:id:AkiIro:20180820235447p:plain
ファイル名とシート名を入力してImportボタンを押すと以下のようになります.
f:id:AkiIro:20180820234648p:plain
(なお,シート名がDataとなっているのは完全に失敗です.)
Typeを設定してGenerateします.
うまくいけばRuntimePathとEditorPathにスクリプトがつくられます.

以下のようになった人は

f:id:AkiIro:20180820234906p:plain
フォルダが用意されていません.RuntimePathとEditorPathにあたるフォルダをつくっておきます.

スプレッドシートのデータをインポートする(Importing Spreadsheet Data)

受け皿になるScriptableObjectをつくります.
f:id:AkiIro:20180820235416p:plain
Downloadボタンを押せば
f:id:AkiIro:20180820235703p:plain
以上です.お疲れ様でした.