本ページにはプロモーションが含まれます
Unity

【Unity】TMP_Settings 初期化エラーを確実に解決する方法

この記事は約2分で読めます。

はじめに

TMPいろいろいじってたら、実行時にテキスト表示すると以下のエラーが出て止まってしまった。
ググっても解決方法など見つからないので、その対応メモ。

UnassignedReferenceException: The variable m_leadingCharacters of TMP_Settings has not been assigned.
You probably need to assign the m_leadingCharacters variable of the TMP_Settings script in the inspector.

対応

Unityシャットダウンして、Asset直下のLibraryを丸ごと削除して起動。Libraryを再構築してくれる。(ものによってはいろいろディフォルト値に戻るので自己責任で)

Assets\TextMesh Pro\Resources直下の、TMP Settings.assetを消す。TMP Essentialsダイアロクが表示される、または、Window -> TextMeshPro -> Import TMP Essentialsで起動。Essentialsをインストールすると、TMP Settings.assetがディフォルト値に戻るので解決。

このエラーの原因は、このエラーは、TextMeshPro(TMP)の設定において m_leadingCharacters という変数が割り当てられていないことが原因らしい。このフィールドは Line Breaking Rules に関連するファイルらしい。たしかにTMP Settings.assetのLine Breaking Rulesが空になっている。
思い当たるに、前回のエラー解決で設定でディフォルトのTMPフォントを変えたりいろいろ触っていたので、そのせいかもしれない。

おわりに

Library消しても大丈夫だったんかい。いろいろ設定消えるけど、そこまで深刻でもなく、10分くらいでリカバーできた。