今回は前回に引き続き、UnityTextMeshPro に伴うエラーの解決法を紹介いたします。

Unity2017以前TextMeshProを使っていてバージョンアップ後大量のエラー Part.1

TextMeshPro は Unityのデフォルトのテキストコンポーネントに代わり、とても見栄えの良いテキストを UIに表示することのできる機能です。

それを Unity2017以前に開発したゲームアプリを Unity2018以降のバージョンに変換した際に大量のエラーが発生。。。この解決法、実際はエラーをなくしバージョンアップした Unity上で元の TextMeshProでのテキスト設定を復活させる方法となります。
Unity_Error_39

【エラーの解決法概要】

1.Assetsフォルダ内のTextMeshProフォルダを削除
2.プロジェクトを再オープン
3.TMP Essential ResourcesからImport
4.Project Files GUID Remapping Toolを起動
5.Conversion ToolでScan、Save



【エラーの解決法】

1.Assetsフォルダ内のTextMeshProフォルダを削除

Assetsフォルダの TextMeshProフォルダで右クリックして、「Delete」でフォルダを削除します。
Unity_Error_46

Undoできませんよとのメッセージが出ます。が、もちろん「Delete」をクリック。
Unity_Error_47

Assetsフォルダ内の TextMeshProフォルダが削除されました。
Unity_Error_48

同時にエラーも全て消えました。しかし、TextMeshProのテキストは無くなったままです。
Unity_Error_49



2.プロジェクトを再オープン

一度このプロジェクトを閉じて、再度立ち上げます。
Unity_Error_50

見た目は何も変わっていません。


3.TMP Essential ResourcesからImport

メニュー:「Window > TextMeshPro > Import TMP Essential Resources」 をクリックして Import Unity Packageスクリーンを表示させます。
Unity_Error_51

全てが選択されていることを確認して、「Import」をクリック。
Unity_Error_52

Assetsフォルダ内に TextMeshProのフォルダが取り込まれました。
Unity_Error_53


4.Project Files GUID Remapping Toolを起動

メニュー:「Window > TextMeshPro > Project Files GUID Remapping Tool」 をクリックして Conversion Toolを起動させます。
Unity_Error_54

Scan Project Files」をクリックすると、以下のようなメッセージが出ましたら、指示通り Project Settingsを設定します。
Unity_Error_55

メニュー:「Edit > Project Settings...」をクリックしてProject Settingsスクリーンを開きます。
Unity_Error_56

Editor内の Asset Serializationの Modeを ForceTextに、Version Controlの Modeを Visible Meta Filesに変更します。
Unity_Error_57

そして、以下のメッセージは「Reload」で。
Unity_Error_58


5.Conversion ToolでScan、Save

Conversion Toolで Folder Pathは何も入力しないで、「Scan Project Files」をクリック。
Unity_Error_59

すると、Project Scan Results として、前バージョンの TextMeshProを含むプロジェクト(Unityファイル)が表示されます。
Unity_Error_60

次に検索されたUnityファイルを修正保存するため、「Save Modified Project Files」をクリックします。
Unity_Error_61

すると、ほんとうに良いかと聞かれますので「YES」をクリック。
Unity_Error_62

そして、修正保存が終了すると以下のメッセージが表示されますので「Reload」で。
Unity_Error_63

これで、元の Unityのバージョンで作成した TextMeshProのテキストが無事に表示されました。
Unity_Error_64

しかし、よく見ると TextMeshProのイメージが変わってしまいました。
Unity_Error_65

TextMeshProの設定を Inspectorビューで確認すると、基本的な設定は正しく引き継がれているようです。
フォントとマテリアルのように他の素材を選択しているものが置き換わってしまいました。もとのフォルダをまるごと消してるのですから仕方ないですかね。
これらはもとのフォルダ削除前にコピーしておいて、リンクを張り替える必要があるようです。
Unity_Error_66


前回と今回で TextMeshProが Unity標準機能化する前に TextMeshProを導入して、Unityのバージョンを TextMeshPro標準化後のものにする場合の対応法を紹介しました。

私はいくつかのアプリを最近バージョンアップさせたので、このような作業がどっと発生しました。同じ境遇の方々に参考になれば幸いです。


Sponsored Link