内容
Visual Studio 上ではエラーが出ないコードがUnity Editor上ではエラーがでます。
以下のコードをUnityEditor2019.4.40f1で開くと CS1024: Preprocessor directive expected
と出ます。IDE上ではエラーになりません。これはUnity Editorの仕様なのでしょうか?
csharp
1#if UNITY_2020_2_OR_NEWER 2#nullable enable 3#endif
環境
Windows 11
Unity Editor 2019.4.40f1
Visual Studio 2022 17.5.2
#nullable は C#8.0 の機能のようです。
https://qiita.com/kojimadev/items/d2ee29e85c4c0859275a
一方、Unity が使用する C# のバージョンはというと
https://www.docswell.com/s/NumAniCloud/5RXXQ2-2023-03-17-175108#p13
とのことなので、Unity 2020.2 以降を使うと大丈夫なのではないでしょうか。
Packageで配布する都合上Unity2020.2以上には#nullableを付与し、それ以下では無効化したいです。同等のコードとなる以下のコードをUnity2019と同じC#7.3の.net framework 4.7 で実行するとエラーにはなりません。
```csharp
#if false
#nullable
#endif
```
これはUnity Compilerが悪いということで どうしようもないのでしょうか?
ああ、意味を取り違えていました。申し訳ありません。
回答1件
あなたの回答
tips
プレビュー