うにてぃブログ

主にUnityとC#に関する記事を書いていきます

【Unity】TextMeshProのフォントを Addressable で利用する

Addressable ロードの問題とその解決方法

TextMeshProのフォントとMaterial PresetをデフォルトおよびカスタマイズしたUIをAddressableを利用してロードする際に、Addressableの設定によって発生する問題についてご紹介します。

まず、以下の画像では、カスタマイズしたMaterial Presetが正しくロードされず、Shaderエラーが発生している状態が確認できます。

マテリアルを確認すると、Shaderの参照が正しくないようです。

また、Material Presetを見ると、デフォルトの参照しか選択できない状態が発生しています。

問題が発生してない場合は正しい Material Preset の一覧が表示されます

これに対する解決方法として、以下の手順を試してみてください。

問題の発生条件

問題は、Addressableの設定でBundle Modeが "Pack Separately"になっており、TMP_Fontが分割されてバンドルになっている場合に発生します。

問題の解決方法は以下の通りです。

解決方法

TMP_Font アセットが存在するフォルダにAddressを指定して、まとめてバンドル化します。

注意が必要なのは、TMP_Font アセットにAddressが指定されている場合、個別になってしまうため、Addressを外して上げる必要があります。

※ アドレスが表示されていて、Address のチェックが外れている状態

これにより、再生してみると、問題なく正しく表示されるはずです。問題が解決したかどうか、お試しください。