テキストを表示した際に、ゲームが停止(フリーズ)します。

16 views
Skip to first unread message

harvestgames

unread,
Jan 22, 2026, 5:45:28 AM (12 days ago) Jan 22
to 宴ユーザーグループ

こんにちは。
私は Unity 6 環境で Utage4 を使用して開発を行っています。

現在、一般的な MessageWindow ではなく、吹き出し形式の MessageWindow を使用してゲームを制作しています。

今回初めて TextMeshProTextAnimator を組み合わせて使用しているのですが、
テキスト表示のコマンドを実行した際にゲームが停止(フリーズ)する現象が発生しています。

この現象では、特別なエラーログは一切出力されず
無限ループに入ったかのようにゲーム全体が停止してしまいます。

興味深い点として、

  • ゲーム内で TextAnimator 単体で表示しているテキスト

  • TextMeshPro 単体で表示しているテキスト

については、同じテキスト内容であっても問題は発生しません

しかし、Utage を使用したイベント演出中に限って、このフリーズが発生することを確認しています。

MessageWindow の構造は、添付した画像の通りです。

  • 最上位の GameObject に

    • Layout Group

    • Content Size Fitter

  • その下位のオブジェクトにも Layout Group を付与し、
    レイアウトによってサイズが自動調整される構成になっています。

このような構成において、

  • 本現象が発生する 原因

  • あるいは 回避策・解決方法

について、もしご存じでしたらご教示いただけないでしょうか。

どうぞよろしくお願いいたします。

5.JPG
1.png
4.JPG
2.JPG
3.JPG

harvestgames

unread,
Jan 22, 2026, 7:25:11 AM (12 days ago) Jan 22
to 宴ユーザーグループ

追加で資料を添付いたします。

ログが途切れている箇所は、NovelTextForTextAnimator コンポーネントの ShowTextSimple でした。



2026년 1월 22일 목요일 PM 7시 45분 28초 UTC+9에 harvestgames님이 작성:
Editor.log
6.JPG

harvestgames

unread,
Jan 22, 2026, 7:47:35 AM (12 days ago) Jan 22
to 宴ユーザーグループ

Utage4 の模範的な固定型 MessageWindowでは、
同じテキストを再生しても問題は発生しませんでした。

そのため、どうやら 私が独自に構成した MessageWindow の特殊な構造に起因する問題ではないかと考えていますが、
どの部分をどのように修正していけばよいのか、手がかりが掴めていない状態です。

ご助言いただけましたら幸いです。


2026년 1월 22일 목요일 PM 9시 25분 11초 UTC+9에 harvestgames님이 작성:

harvestgames

unread,
Jan 22, 2026, 9:49:20 AM (11 days ago) Jan 22
to 宴ユーザーグループ

私のケースとほぼ完全に一致する問題を発見しました。

やはり TextMeshPro に起因する問題である可能性が高そうです。
しかし、明確な解決方法がどこにも見当たりません……

https://discussions.unity.com/t/unity-holding-indefinitely-when-setting-a-specific-text-with-overflow-mode-activated/1526532


2026년 1월 22일 목요일 PM 9시 47분 35초 UTC+9에 harvestgames님이 작성:

harvestgames

unread,
Jan 22, 2026, 10:19:14 AM (11 days ago) Jan 22
to 宴ユーザーグループ

問題を解決しました。

TextMeshPro のデフォルトの Wrapping ModeNormal に設定されていましたが、
これを No Wrap に変更したところ、問題は完全に解消されました。


2026년 1월 22일 목요일 PM 11시 49분 20초 UTC+9에 harvestgames님이 작성:

マッドネスラボ

unread,
Jan 22, 2026, 11:03:50 AM (11 days ago) Jan 22
to 宴ユーザーグループ
解決したようでよかったです。
一応補足をします。

1.PNGを見る限り、LayoutGroupとContentSizeFilterの設定の問題かもしれません。
UnityUIのAutoLayoutはかなりクセがあって、複雑な設定が必要になることがあります。

LayoutGroupは、子要素を自動で整列・間隔調整するためのもので、
ContentSizeFilterは、子要素の大きさから、親要素の大きさを調整するためのものです。
正しく設定されていないと、次のように互いがループしてしまいがちです。
・親のサイズが変わる→子のサイズが変わる
・子のサイズが変わる→親のサイズが変わる
・親のサイズが変わる→子のサイズが変わる
・以下ループ……
(ただ、こうなってしまう設定の場合はUnityに警告などが出ると思います。見る限り警告が出てないので大丈夫なのかもしれません)


>TextMeshPro のデフォルトの Wrapping Mode が Normal に設定されていましたが、
>これを No Wrap に変更したところ、問題は完全に解消されました。 
 TextMeshProのWrappingModeは、表示領域の横幅に合わせてテキストを自動改行して折り返して表示する機能です。
これによって、テキストのPreferreddSizeというAutoLayoutで参照する際の縦幅が変化します。

なので、 
・Wrapping Mode が Normal によってテキストの縦幅が変わる
・親オブジェクト側に縦サイズの変更が通知される
・親オブジェクトは子オブジェトのレイアウトを再計算する
・Wrapping Mode が Normal によってテキストの縦幅を再計算する
というループが発生していたのかもしれません。

 Wrapping ModeがNoWrapのままでいいなら、問題は起きないかもしれませんが、
それだとメッセージを自動改行して表示することができなくなるので、使いづらいかと思います。

ループを避けるには、
ContentSizeFilterで、横は自動設定するけど縦は自動設定しないなどしたりして調整したりする必要があります。
また、Child Force Expandは必要ではないならオフにしてください。

一度、LayoutGroupとContentSizeFilterの関係を見直してみるとよいかもしれません。




Reply all
Reply to author
Forward
0 new messages