TextMeshProを使ったUIが、Unityでは問題なく表示されるものの、実機では文字が消えてしまうというバグに遭遇しました。
よくよく観察してみると、OverlayなCanvas上のUIのみが非表示になっています。
久々のアプデだったので、AndroidのTarget APIレベルが30になった影響か?などと色々考えましたが、調べたところ、どうやらTextMeshProのバグだったようです。
このバグが発生する条件があり、
- OverlayなCanvasにTextMeshProUGUIのオブジェクトが設置されている
- TextMeshPro(3Dオブジェクト用)とTextMeshProUGUI(UI用)のオブジェクトがシーンに両方あり、マテリアルを両者で使いまわしているペアが一つでもある
という場合に、両方のオブジェクトが存在するシーンをロードすると、以降でOverlayなCanvasに設置されたTextMeshProUGUIオブジェクトが表示されなくなるようです。
TextMeshPro用のマテリアルをコピーし、使い分けるようにすると解決しました。
コメント