celestella
@celestella

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Unity WebGLビルド時にテキストが部分的に表示されない(Development buildだと表示されるにも関わらず)

解決したいこと

Unityを使用してWebGL上のゲームを作成しています。
発生している問題としては、日本語・英語に関わらず、テキストが部分的に描写されなくなるというものです。
スクリーンショット 2021-06-03 173115.png

環境

OS: Windows10 Pro
Browser: Google Chrome
Unity: 2020.3.10f1
使用フォント: Mplus1-Regular.ttf

発生している問題・エラー

以下の(1)(2)の条件が重なった場合においてのみ「テキストが部分的に描写されない」事象が発生します。

(1)「Development Build」オプションを無効にする

Build Settings上の「Development Build」オプションにチェックを付けてwebGLビルドした場合には全く上記の症状が発生しません。このオプションのチェックを外してビルドした時にのみ、症状が現れます。(添付のスクリーンショットをご参照ください)

(2)テキストの表示と同時にVideoPlayerで動画を再生している

(1)でビルドした場合も、基本的には問題なく日本語・英語は表示されるのですが、テキストと同時にVideoPlayerで動画を再生するシーンに切り替わると、部分的に日本語・英語が表示されない、という事象が発生します。なお、当シーンにおいては、VideoPlayerにて、StreamingAssetsフォルダに配置している動画を、Texture経由でRawImage上に描画しています。(添付スクリーンショットの背景(山と星空)は、動画で描写されています)

スクリーンショット①

「Development Build」オプションにチェックを付けてwebGLビルドした場合には、以下のように問題なくUI上のテキストが表示されます。
スクリーンショット 2021-06-03 173145.png

スクリーンショット①

「Development Build」オプションのチェックを外してwebGLビルドすると(チェックを外しただけで、それ以外のオプションは変更していません)、以下のようにテキストが欠けたような状態になります。
スクリーンショット 2021-06-03 173115.png

自分で試したこと

PlayerSetting上のいくつかの最適化オプション(コードの圧縮やCode Stripping等)を外してビルドしましたが、結果は同じでした。(Development Buildオプションを外したことによる何らかの最適化処理が原因なのでは?という仮説のもと)

お心当たりがございましたら、アドバイス等、ご教示いただけますと幸いです。何卒、宜しくお願いいたします。

0

1Answer

おそらくText Componentを使って実装されているものと思います。
UnityWebGLにおいてText Componentは特定の操作で文字が欠けるなどの描画系が不安定になるバグが前からあるので
場当たり的ですがTextMeshProで再実装することをおすすめします

2Like

Comments

  1. 普通に原因不明なのでUnityにバグ報告したいんですけど再現条件がわからないんですよね・・・Prefab Instantiateしたときにおこりやすいぐらいしかわかってないです
  2. @celestella

    Questioner

    ご教示いただき誠に有難うございます!

    TextMeshProに置き換えてビルドを行いましたら、上記の事象は発生しませんでした。
    Unityの標準コンポーネントにもこのようなバグが取り残されているとは。。。全く異なる仮説を立ててしまっていたので、本当に本当に助かりました。

    この後は、以下の記事を参照しながら、Textコンポーネントを全てTextMeshProへと置き換えてみます。
    https://kan-kikuchi.hatenablog.com/entry/TextMeshPro_Migration

    心より御礼申し上げます。有難うございました。
  3. Unity WebGLはいつもこんなもんです...

Your answer might help someone💌