今回は Unityの TextMeshPro に伴うエラーについて。
TextMeshPro は Unityのデフォルトのテキストコンポーネントに代わり、とても見栄えの良いテキストを UIに表示することのできる機能です。
TextMeshPro は Unityのデフォルトのテキストコンポーネントに代わり、とても見栄えの良いテキストを UIに表示することのできる機能です。
それを Unity2017以前に開発したゲームアプリを Unity2018以降のバージョンに変換した際に大量のエラーが発生。。。今回はこの解決法について。
Library\PackageCache\com.unity.textmeshpro@2.0.1\Scripts\Runtime\TMPro_Texts.cs(342,35): error CS0121: The call is ambiguous between the following methods or properties: TMPro.TMPro_ExtensionMethods.Compare(this UnityEngine.Color32, UnityEngine.Color32)' and TMPro.TMPro_ExtensionMethods.Compare(this UnityEngine.Color32, UnityEngine.Color32)’
【TextMeshProとは】
そもそも TextMeshPro とは と言うことも解説します。

上記した通り TextMeshProは Unityのデフォルトのテキストコンポーネントに代わり、とても見栄えの良いテキストを UIに表示することができます。
通常のテキストコンポーネントの設定項目より多くの項目を持ち、高度なテキスト制御が可能となっています。フォントサイズや間隔、アラインメント、カーニングをカスタマイズできるオプションがあるほか、自動サイズ調整を有効にしたりコンテナのサイズにテキストを合わせられるオプションなんかもあります。

また、デフォルトのテキストだとストレッチやサイズを大きく変更すると見た目がぼやけることがあります。これはリサイズされた場合の見た目に関する情報がないためで欠損したピクセルは Unityがざっくり調整してるわけです。が、TextMeshProは異なるレンダリング方法を使っているためクリアに表示されるわけです。
以下の Unityブログに分かりやすい機能紹介動画があります。
https://blogs.unity3d.com/jp/2017/03/20/textmesh-pro-joins-unity/
https://blogs.unity3d.com/jp/2017/03/20/textmesh-pro-joins-unity/
そして、以前は Asset Storeから無料ですがダウンロードしてインポートする必要がありました。しかし、2017年3月に TextMeshProは Unityに含まれ、現在は標準で Unityに搭載されております。
【エラーの解決法概要】
では、本題に入ります。今回のエラーは Unity2017以前に開発したゲームアプリを Unity2018以降のバージョンに変換した際に大量発生と言うところがポイントです。
要は、以前は TextMeshProが標準に含まれていなかったため自分でインポートしていました。しかし、現在は標準で搭載されており、そのまま以前の設定を利用するにはいくつか手順をふむ必要があります。
では、本題に入ります。今回のエラーは Unity2017以前に開発したゲームアプリを Unity2018以降のバージョンに変換した際に大量発生と言うところがポイントです。
要は、以前は TextMeshProが標準に含まれていなかったため自分でインポートしていました。しかし、現在は標準で搭載されており、そのまま以前の設定を利用するにはいくつか手順をふむ必要があります。
今回のエラー解決の手順の概要は以下の通りとなります。0はエラー解決を順に説明するために環境を整えたので、実際の解決法は1からとなります。
0.エラー検証の準備
1.Assetsフォルダ内のTextMeshProフォルダを削除
2.プロジェクトを再オープン
3.TMP Essential ResourcesからImport
4.Project Files GUID Remapping Toolを起動
5.Conversion ToolでScan、Save
1.Assetsフォルダ内のTextMeshProフォルダを削除
2.プロジェクトを再オープン
3.TMP Essential ResourcesからImport
4.Project Files GUID Remapping Toolを起動
5.Conversion ToolでScan、Save
【エラーの解決法】
0.エラー検証の準備
エラーを解決法を説明するエラー検証の準備。簡単な通常のテキスト(以下の図の Gameビュー内の上)と TextMeshProのテキスト(下)を表示したプロジェクトを Unity 5.6で作成。

エラーを解決法を説明するエラー検証の準備。簡単な通常のテキスト(以下の図の Gameビュー内の上)と TextMeshProのテキスト(下)を表示したプロジェクトを Unity 5.6で作成。

この TextMeshProでのテキスト設定がまるごと消えてしまった状態から、バージョンアップした Unity上で元の TextMeshProでのテキスト設定を復活させていきたいと思います。
が、ここからは長くなりますので、今回はきりの良いここで区切って次回はこの TextMeshProでのテキスト設定の復活法を紹介いたします。
Sponsored Link