環境
Unity Editor 2021.2.0b4
状況
Unity 2021.2ではC# 9.0の機能が使えるということで、JetBrains Riderに勧められるがままに Substring
をC#8.0の新機能を使ってこんな感じに書いてみたら、
var sub = text[number..];
IDEではエラーが出なかったが、Unity Editorでエラーが出た。
What’s new in C# 8.0 – C# Guide _ Microsoft Docs
Unityのマニュアルを見ると C# 8.0 の Unsupported features として Indices and ranges が書かれている。使えないらしいです。
エラーメッセージ
error CS0518: Predefined type System.Range
is not defined or imported
解決策
① 元に戻す。
var sub = text.Substring(number);
② Unity Editorのバージョンをあげる。
2021.2.0b6のリリースノートに
Scripting: Allow user code to build against .NET Standard 2.1 and .NET Framework 4.8
https://unity3d.com/jp/unity/beta/2021.2.0b6
とあります。マニュアルには Unsupported Features に残っているままなのですが、これによって以降のバージョンでは Indices and Ranges が使えるようになっているようです。
今のところ2021.2.0b14まですべてのベータ版で使えています。