Unityでエクセルやスプレッドシートを超簡単に読み込むには?

Creating Game

こんにちは。あっきーです。
ゲームやアプリ制作をしながらプログラミング学習をしています。

Unityでスプレッドシートを使いたい人
スプレッドシートにデータを保存してそれをUnityで使えたらいいのになぁ。

今回はunityでスプレッドシートを使う方法について分かりやすく説明します。

スプレッドシートを使えば「キャラクターのステータス管理」だったり「セリフの管理」が非常に見やすく楽になりますよね。

Unityではあるツール1つで簡単にスプレッドシートでデータ管理してそれを使うことができるんです。
というわけで、さっそくやっていきましょう。

この記事は「簡易辞書を作る」というテーマに合わせています。一緒に作りながら学びたいという方はまずこちらへ。

Quick Sheetを利用する

そのあるツールが”Quick Sheet”というものです。

googleスプレッドシートもExcelもどちらも簡単にインポート可能になるので優秀です。
googleスプレッドシートに関してはxlsxファイル等にしなくても良かったりするので超便利です。
ちょっと古めのファイルですが、今も問題なく機能します。

QuickSheetの使い方

まず、上のリンクにアクセスしてファイルをダウンロードします。
Zipファイルでダウンロードできるので解凍しましょう。

いろいろファイルがありますが、その中で”QuickSheet”というフォルダだけをUnityのAssetフォルダ内に移します。


ファイル設定はこれでOKです。

スプレッドシートを作成する

次にスプレッドシートを作成します。
Excelでもgoogleスプレッドシートでも両方OKです。が、googleスプレッドシートの方がちょっとだけ都合がいいので今回はコチラを利用します。

スプレッドシートを開いて、例としてこんな表を作成しました。

Distinctionという英単語帳のデータを写したものです。

  • id:番号
  • word:単語、表現
  • meaningJap:日本語の意味
  • meaningEng:英語の別表現
  • exmaple:例文
  • origin:由来、起源

という6つのデータを持った表を作成しました。

1行目は「変数」になるので注意

表を作る際に1つ注意点があって、1行目は変数として扱われます。

Unityでこのデータをアクセスするときに、1行目に書いた文字を使うということです。
(これについてはアクセスする際に詳しく説明します。)

この時点ではよく分からないかと思いますが、とりあえず以下の点に注意して名前をつけましょう。

  • 名前は必ず英語で(日本語だと変数で扱えない)
  • ドット(.)などを使わない(変数名で使えない文字はNG)
  • 分かりやすい名前にすること

後から変更はできるので、パパっと表を作成しましょう。

Google APIの取得

次はGoogle APIというものを取得していきます。これはざっくり言うと「権限」です。
「スプレッドシートのデータをUnityという別のプラットフォームでアクセスしますよ」という権限を得るためのものだと思っていただければOKです。

まず、Google APIsにアクセスします。

そして、プロジェクトを作成します。

画面左上の▼マークがある部分をクリックします。
そして、画面のように右上の「新しいプロジェクト」を選択。


名前を適当につけて作成します。


もう一度先ほどのプロジェクト一覧を表示して、作ったプロジェクトを選択して開きます。


次に左の項目から「認証情報」をクリック。
中央上の「認証情報を作成」の中の「OAuthクライアントID」を選択します。


このような画面になるので、「同意画面を設定」をクリック。


「外部」を選択して次へ。

]
いろいろ書くところがありますが、一番上の「アプリケーション名」だけ適当に書いて保存します。
そしたら、もう一度「OAuth クライアントID」のところまで行きます。


アプリケーションの種類など聞かれます。特にスマホアプリとして公開したりせず、プライベートで使う場合は「デスクトップアプリ」にしておけばOKです。
(Androidなどにするといろいろ面倒です。)

名前は適当でOKです。

設定を終えるとこのような画面になりますが、特にメモいらないのでそのまま次へ。


「OAuth2.0 クライアントID」というところに先ほど設定した名前がでてくるので、右側のボタンをクリックしてダウンロードを開始します。作成した情報をファイルとして保存できます。

JSONファイルで保存できるのでデスクトップなどに保存しておきましょう。

Google側の設定はこれで終了です。

Unityにスプレッドシートをインポートする

次にUnityで設定&インポートしていきます。


QuickSheet → GDataPlugin → Editorと行き、Google Data Settingsを開きます。


その後インスペクターで設定を行います。

① まず、先ほどのダウンロードしたJSONファイルを入れます。
すると、Client IDなどが自動で設定されます。

② そのあとにStart Authenticationをクリックします。するとgoogleアカウントの認証が始まります。

途中で警告が出ると思いますが、気にせず「安全でないページ」に進んでください。


アクセスの許可をすると、このようにIDが出ます。これをコピーしてください。


インスペクター上のAccessCodeというところにそのIDを張り付けてください。
最後に”Finish Authentication”をクリックしてOKです。

③ また、Path SettingsのところでRunTimeEditorの部分を図のように設定しましょう。
その後、QuickSheet→Exampleの中にあるDataをAssetフォルダの直下に移動します。


次に、Projectウィンドウの左上にある+(プラス)ボタンからQuickSheet→Tools→Googleと選択します。

するとインスペクター上に”New Import Setting”と出ます。

(最初はちょっと画面が違うと思います)
次にここで設定を行います。

まず、SpreadSheet Nameにはスプレッドシートの名前を、WorkSheet Nameはスプレッドシートのシート名を入れます。

そして、Importボタンを押しましょう。

すると、Type Settingsという項目がインスペクター上に現れたと思います。
これはスプレッドシートの1行目の変数の型を設定するものです。

今回の場合、idはint型、残りはstring型です。

なお、右のArrayはスプレッドシートの1マスに複数のデータを入れている場合に使います。今回は不要です。

そしてGenerateボタンを押せばインポート完了です。


またProjectウィンドウの+(プラス)ボタンを押して、今度はGoogle→"シート名"を選択します。


すると、先ほど設定したシート名のファイルが作られます。
インスペクター上のDownloadを押してください。

すると、データがすべて下に表示されます。

長かったですが、これでデータの取り込みは完了しました。

xlsxファイルを利用した方法

(準備中)

まとめ

ということで、今回スプレッドシートをUnityに読み込ませる方法を解説しました。

APIを利用した方法だと、スプレッドシートを変更してもインポートを再度行うだけで簡単にデータを変えることができます。わざわざxlsxファイルにしたりする必要がなくなるので手間が省けます。

スプレッドシートでデータ管理すると便利なのでぜひこの方法を利用してください。

それでは、また。

人気記事現役大学生が告白!大学生がブログを始めるのをオススメする理由

人気記事WordPress(ワードプレス)の始め方【初心者でも15分で開設】