技術と趣味の亜空間

主にゲームプログラミングとその周辺に関する記事を不定期で上げていきます

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