UnityのLocalizationでSpreadsheetと連携する手順

UnityのLocalizationパッケージを使って多言語対応する際、テキストデータをGoogleSpreadsheetと連携する手順です。

こちらの記事を参考に進めたところ、自分の手元と異なるところがたまにあったので、2025年現在の手順を覚え書きとして残しておきます。

 

GoogleCloudのコンソールでの手順

https://console.cloud.google.com/ にアクセスし、ロゴの右のボタンを押して「新しいプロジェクト」を作成します。

プロジェクト名を適当に付けたら作成。

 

ロゴの右側が作成したプロジェクト名になっている状態で、左上のナビゲーションメニューから「APIとサービス > OAuth同意画面」を開きます。

「開始」を押した後、アプリ名など諸々を入力して作成。

 

次に、ナビゲーションメニューから「APIとサービス > 認証情報」を開き、「認証情報を作成 > OAuthクライアントID」を選択。

アプリケーションの種類は「デスクトップアプリ」を選んで作成。

「クライアントID」と「クライアント シークレット」が後で必要になるのでメモ。
ナビゲーションメニューから「APIとサービス > 認証情報」を開き、作成したクライアントを選択することでいつでも確認できます。

 

ナビゲーションメニューから「APIとサービス > OAuth同意画面」を開き、「対象」タブの「アプリを公開」を実行。

公開ステータスが「本番環境」になればOK。

 

ナビゲーションメニューから「APIとサービス > ライブラリ」を開き、「Google Sheets API」を選択して有効にします。

GoogleCloudコンソールでの作業はこれで完了。

 

Visual Studioでの手順

Visual Studio(≠ Visual Studio Code)で適当なプロジェクトを開く or 新規プロジェクトを作ります。Visual Studioがない場合はインストールしてください。
ちなみに自分が使ったのは Visual Studio for Mac(ARM) 17.6.14 でした。

「ツール > NyGetパッケージの管理…」を選択し、

「Google.Apis」などで検索して以下のものを「パッケージを追加」します。

  • Google.Apis
  • Google.Apis.Core
  • Google.Apis.Auth
  • Google.Apis.Sheets.v4

ちなみに Newtonsoft.Json はUnityのPackageManager経由で入るので不要なようです。

 

追加したパッケージはWindowsなら C:\Users\UserName\.nuget\packages 、Macなら /Users/UserName/.nuget/packages/ に入っています。(手元ではMacのみ確認)

  • google.apis/1.69.0/lib/net462/Google.Apis.dll
  • google.apis.auth/1.69.0/lib/net462/Google.Apis.Auth.dll
  • google.apis.core/1.69.0/lib/net462/Google.Apis.Core.dll
  • google.apis.sheets.v4/1.69.0.3757/lib/net462/Google.Apis.Sheets.v4.dll

をUnityプロジェクトのAssets/以下の適当なフォルダにドラッグ&ドロップで入れます。(バージョン名のフォルダは適宜読み替えてください)

4つとも「Auto Reference」を無効にし、プラットフォームを「Editor」のみにしておきます。

 

これで Visual Studio(とUnityへのdllインポート)が完了。

 

Unityでの手順

Projectウィンドウで右クリック > Create > Localization > Google Sheets Service を選択し、作成されたものに「Application Name: 適当な名前」「Authentication: O Auth」「Client Id: メモしたもの」「Client Secret: メモしたもの」を入力。

入力後に「Authorize…」を押すとブラウザが開くので、そこで認証を行います。

Googleアカウントでログインした後に以下のような画面が表示されますが、一番左下の「詳細」をクリックすると追加行が表示され、一番下に「[プロジェクト名](安全ではないページ)に移動」のリンクがあるのでクリック。デベロッパーが自分で信頼できるので進めます。

認証に成功するとブラウザ側は「Received verification code. You may now close this window.」と書かれた画面になり、UnityのConsoleに「Authorized: [日時]」とログが出力されているはずです。

 

最後に、StringTableCollectionとスプレッドシートを連携します。
Localizationパッケージの導入方法、基本的な使い方などはここでは解説を省きます。StringTableCollectionがわからない方は一度Localizationパッケージの使い方を調べてみるのが良いかもです。

 

StringTableCollection の Extensions の + ボタンを押し、「Google Sheets Extensions」を選択。

「Sheets Service Provider」に先ほど作った Google Sheets Service を指定し、「Create New Spreadsheet」を押下します。

「Spreadsheet Id」「Sheet Id」が自動で入力されたのを確認し、「Open」を押すと連携先のスプレッドシートがブラウザで開かれます。

 

「Mapped Columns」の + ボタンを押し、「Add Default Columns」を選択。

「Key Column」と各言語用の「Locale Column」が追加されます。

 

ここまで対応した状態で「Push」を押すと、スプレッドシート側に内容が反映されているのを確認できます。
逆にスプレッドシート側で編集した後でStringTableCollectionの「Pull」を押すと、Localization Tables ウィンドウにスプレッドシートの内容が反映されているのを確認できます。

 

以上でLocalizationパッケージとスプレッドシートの連携は完了です。お疲れ様でした!

Localizationをより便利にするエディタ拡張を近いうちに公開予定です。

コメント