ひとりでのアプリ開発 - fineの備忘録 -

ひとりでアプリ開発をするなかで起こったことや学んだことを書き溜めていきます

Unity - Localization, Addressable:ビルト時にローカライズしたテキストが表示されない場合の対処法

初めに

 ローカライズをした際、Unity 上ではローカライズしたテキストが表示されるが、ビルドすると表示されないという状態に遭遇しました。その原因と対処法をまとめます。


前提知識(Localization について)

 Localization については、こちらの記事をご覧ください。
fineworks-fine.hatenablog.com

原因

 ビルド時にローカライズしたテキストが表示されなかった原因は、

Addressableのビルドをしていなかったから

です。

 ローカライズした際に作成した Locale ファイルや String Table を確認すると、Inspector に Addressable と書かれているのが分かります。

 実は、Localization は Addressable の使用を前提としており、各ファイルにアドレスが割り当てられています。そのアドレスを指定することで、ファイルをロードするような仕組みになっています。
 実機で Addressable を使うには、Addressableのビルドを行う必要があります。これにより Addressable の内部で使われている AssetBundle のビルドと、アドレスや依存関係の情報を構築することで、実機でも読み込みが可能になります。

対処法

 原因で書いた通り、Addressable のビルドをすればよいです。次の手順で Addressable をビルドできます。

  1. Addressable Groups ウィンドウを開く。(Window/Asset Management/Addressable Assets/Groups)
  2. Build/New Build/Default Build Scriptを選択する。

 Addressable がビルドできれば、あとは通常通り実機でも動くはずです。

参考

(Localization と Addressable の関係について)
 この記事の最下部に本記事の内容が書いてあります。
docs.unity3d.com

(Addressable について)
light11.hatenadiary.com

最後に

  • Localization は Addressable の使用が前提
  • きちんと Addressable のビルドをしよう