TextMeshProをAssetStore版からPackageManager版へ参照を維持したまま乗り換える方法

概要

自分が携わっているプロジェクトを Unity2017.3 から 2018.1 にアップグレードしたので、その際にずっと有料版の頃から使われていたAssetStoreの TextMeshPro を PackageManager経由の最新版に乗り換えてみました。

コンポーネントの一括変換

旧TextMeshProのプラグインフォルダを削除してPackageManager版に差し替えると、旧コンポーネントのFileIDおよびGUIDの参照が外れてMissingになります。 また、生成していたフォントもピンクになったりMaterial Presetへの参照が外れたりして死にます。 私のプロジェクトでは、あまりに変更箇所が膨大なので手作業だと厳しいですが、幸いにも製作者さんからバージョアップ時用の一括変換ツールが提供されているためそちらを利用します。

PackageManagerで導入した後、一括変換は以下の方法で行います:

  1. メニューから [Window] -> [TextMeshPro] -> [Import TMP Essential Resources] をクリックし、必須コンポーネントをインポートします(既にやっている場合は省略してOK)
  2. インポート後、 TextMesh Pro/Resources/TMP Setting.assetでフォント設定を忘れず行います。特に日本語フォントを利用している方は注意が必要で、ここの「Default Font Asset」に設定
  3. メニューから [Window] -> [TextMeshPro] -> [Project Files GUID Remapping Tool] をクリックしてマッピングツールを立ち上げます
  4. 下図のようなポップアップが開きますので、ボタン①をクリックしてプロジェクト全体の古いGUIDをスキャンします。 この時プロジェクトの設定で meta ファイル表示が Hidden だとエラーが出るので、Visible に変更しておいてください。 f:id:Goropocha:20200325235725p:plain
  5. スキャンが完了したらボタン②をクリックして一括変換させます。念のため、変換前にバックアップをお忘れなきように。作業はこれで終了です

参考サイト

Topic: TextMesh Pro to be included with Unity 2018.1