UnityアプデしたらTextMeshProがエラー吐いた
アップグレードしたら……
Unity2017で作っていたゲームを2019にアップグレードしたら、大量のエラーをお見舞いされました。273くらいだったかな……。
その中でもとくに、多かったのが以下のエラーです。
Feature `out variable declaration' cannot be used because it is not part of the C# 4.0 language specification
見るとTextMeshProが原因のようですね。何故に。
エラーの解消
ScriptingRuntimeVersionの変更
このスレッドに、こう書いてあります。
QA replied with "Change Scripting Runtime Version to .NET 4.x" and closed the issue. Not sure if that's the proper solution though, since this issue did not exist in 2019.1.0b4. Something did change between b4 and b9 which now causes this issue.
……ほう。とりあえずやってみました。
Edit→ProjectSettings…
→Player→Other Settings→Scripting Runtime Versionを.NET 3.5から.NET 4.0に。
……すると、今度はエラーが変わりました。
'FaceInfo' does not contain a definition for 'lineHeight' and no accessible extension method 'lineHeight' accepting a first argument of type 'FaceInfo' could be found (are you missing a using directive or an assembly reference?)
TextMeshProをダウングレード
調べると、こちらの記事に対処法が書かれていました。
このゲームはTinyModeを使っているわけではありませんが、とりあえず1.3.0にしました。
すると、総数は減ったのですが、また新たなエラーが出てきました。
The call is ambiguous between the following methods or properties: 'TMPro.TMPro_ExtensionMethods.Multiply(UnityEngine.Color32, UnityEngine.Color32)' and 'TMPro.TMPro_ExtensionMethods.Multiply(UnityEngine.Color32, UnityEngine.Color32)'
こちらはスクショを忘れました。
データの入れ直し――解決!
Unity2018にアプデしたらTextMeshProでエラーが出た | pc-memoという記事で全く同じエラーだったので見てみました。(この記事にも更に元記事があるみたいですが、手順が細かく書かれているのでこちらのリンクを貼りました)
スクショはないのですが、
1.TextMeshProフォルダを削除
2.プロジェクトを閉じ、もう一度開く
3.Window→TextMeshPro→ImportTMPEssentialResourcesを開いてImportする
4.Edit→ProjectSettings→EditorSettingsに進み、
・Version control の Mode を Visible Meta Filesに
・Asset Serialization の Mode を Force Textに
する
5.Window→TextMeshPro→ProjectFilesGUIDRemappingToolでScanして、Saveする
……するとTextMeshPro関係のエラーが全て消えました!
でも、PostProcessingとかもちょっと吐いてたりするから、大変……
最終的にちゃんと動作するように戻せました、よかったよかった。
ではでは。