すでにいろんな人が散々書いてますが自分も遭遇したのでメモ
何が起きた
- 5.5.1f1で作ってたプロジェクトを久々に開いた
- 2018.2.5f1に更新された。
- いっぱいエラー出た(46個)
エラー例
Multiple plugins with the same name 'tmpro_plugin' (found at 'Packages/com.unity.textmeshpro/Plugins/64 Bit Plugins/TMPro_Plugin.bundle' and 'Assets/TextMesh Pro/Plugins/64 Bit Plugins/TMPro_Plugin.bundle'). That means one or more plugins are set to be compatible with Editor. Only one plugin at the time can be used by Editor.
Assets/TextMesh Pro/Scripts/TextMeshProUGUI.cs(72,21): error CS0103: The name `m_canvasRenderer' does not exist in the current context
Assets/TextMesh Pro/Scripts/TMP_Text.cs(276,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が2箇所に入ってる
Assets/TextMesh Pro
5.5のときにアセットを導入してインストールされたフォルダPackages/TextMesh Pro
2018でPackageManager経由でインストールされたフォルダ
=> Assets以下のTextMeshProを消せばどうにかなりそうです。
対処
1. Assets 以下のTextMeshProフォルダを消す
丸ごと消す。
エラーが4つに減りましたが下記が残ってました。
Multiple plugins with the same name 'tmpro_plugin' (found at 'Packages/com.unity.textmeshpro/Plugins/64 Bit Plugins/TMPro_Plugin.bundle' and 'Assets/TextMesh Pro/Plugins/64 Bit Plugins/TMPro_Plugin.bundle'). That means one or more plugins are set to be compatible with Editor. Only one plugin at the time can be used by Editor.
Unityエディタを開き直したらエラーは消えました。
2. TextMeshPro必須リソースを取り込む
メニュー -> Window -> TextMeshPro -> Import TMP Essential Resources
これで新しいTextMeshProで最低限必要なシェーダーやフォントアセット等が作られます。
インポート先は
Assets/TextMesh Pro
で、消したフォルダと同じ場所ですがこれはこのままで大丈夫。
3. 新旧スクリプトの置き換え
メニュー -> Window -> TextMeshPro -> Project Files GUID Remapping Tool
Scan -> Save
まとめ
ひさびさにプロジェクト開くと怖いですね。
TextMeshProは市販アセットからUnity公式アセットになってインストール方法も大きく変わりました。
ちょっと怖かったですが無事移行完了してホッとしました。