[unity2019]Android 環境で文字がピンクになる問題

AssetBundle化している場合、Android 実機では正しく表示されるのに、Unity Editor では TextMeshPro (文字) がピンク色になってしまうことがあります。

なぜ問題が起こるのか

AssetBundle(Android)のシェーダーは OpenGL 系、Windows のシェーダーは Direct3D系 のため一致せず(AssetBundle のシェーダーが正しく読み込まれず)、表示がおかしくなっているようです。

対処方法

Windows の描画シェーダーを変更する

Windows のシェーダーを Direct3D ではなく、Android と同じ OpenGL にする方法です。
シェーダーが一致するので、AssetBundle も正しく読み込まれます。
お手軽ですが、描画の重いゲームだと動作に支障があるかもしれません。

再起動します

AssetBundle シミュレーターで実行する

シミュレーターで実行されるので、シェーダーは Windows のもので実行されます。
パフォーマンス的には最適ですが、AssetBundle シミュレーター環境を自分で用意しておく必要があり、少々面倒です。
(Addressabe Asset System なら簡単に出来るかもしれません)

実行中にシェーダーを切り替える

実行中にインスペクタで TextMeshPro フォントのシェーダーを切り替えると、文字が正しく出るようになります。
ちょっと確認したいだけなら、この方法でも十分です。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA