【Unity/C#】Predefined type ‘System.Runtime.CompilerServices.IsExternalInit’ is not defined or imported が出たとき

エラーメッセージ

Predefined type ‘System.Runtime.CompilerServices.IsExternalInit’ is not defined or imported

C#9.0の機能を使おうとするとエラーになってしまうようです。
解決方法だけをメモしていたので、いつ見たエラーなのか具体的に思い出せないのですが、おそらくNewtonsoftのJSONConverterを使ったとき……?

対策①

Unityの場合は2021.2.0f1以降にアップデートすると、このエラーメッセージが出なくなります。

対策②

以下のコードをHotfix.cs みたいな名前で保存して、Assetsフォルダのどこかに置いておくとエラーが出なくなります。

// ReSharper disable once CheckNamespace
namespace System.Runtime.CompilerServices
{
    internal static class IsExternalInit {}
}

一行目のコメントはRider使ってる人向け。なくても全然良いです。

参考

https://stackoverflow.com/questions/64749385/predefined-type-system-runtime-compilerservices-isexternalinit-is-not-defined

Leave a Reply