Android(Mobile)でTextmeshProUGUIが描画されない

トラブルシューティング

表示されません。新規にフォンtアセット作りなおしてアサインすれば表示されます。

FrameDebuggerで見てみると不可解なDrawMeshイベントがありました。UIを描画してるはずなのにZTestが行われ、mainTexはありません。

Profillerで見るとメモリ上にはAtlasは存在してます。

原因

https://forum.unity.com/threads/null-reference-exception-with-empty-string.522184/

ワールド空間にTextMeshPro、UI空間(ScreenspaceCamera or ScreenspaceOverlay)にTextMeshProUGUIがあり、共通のMaterialPresetを使っていると発生します。

ワールド空間では確かにZTestが行われ、UI空間では行われないのはなんとなくわかります。そのうえで共通のMaterialとなると矛盾が発生します。結果として今回のようなバグにつながりました。

対策

ワールド空間で使うTextMeshPro用のMaterialPresetを用意します。こうすればZTestの矛盾がなくなり正常に描画されます。

フォントを新規に作って正常に描画されたのは、MaterialPresetも新規に作られたためです。

Standalone buildで正常に描画されたのは偶然というか、デバイスが違うからじゃないでしょうか?(よくある

コメント

  1. […] それと、TextMeshProが描画されないことがある。参考になりそうな情報も見つけたけど……。 […]

  2. […] こちらに書いてあることが関係してるのかなとも思ったんですけど色々やっても解決しない。 […]

  3. […] それと、TextMeshProが描画されないことがある。参考になりそうな情報も見つけたけど……。 […]