概要
C#の最新機能が便利なので、Unityでも、9.0や10.0といった最新バージョンを使いたくなった。下のパッケージ(C# Compiler Settings For Unity)を使うことでUnityで使うC#のバージョンを変更することができる。
ちなみに、このページ(アーカイブ)にも書かれている通り、最新のUnity2021での対応バージョンはC#9.0, 2020だとC#8.0, 2019だとC#7.3である(図1)。
手順
1. 新規プロジェクトを作る
2. Window>Package Managerを選択(図2)
3. Add package from git URL…を選択(図3)
4. https://github.com/mob-sakai/CSharpCompilerSettingsForUnity.git と入力して “Add” を押す(図4)
しばらく待つとプラグインが導入される。
5. PCに.NET 7.0がインストールされていない場合は、それも併せてインストール。バージョンによっては 6.0 や 5.0 でも構わない。下のページにアクセスして .NET SDKを入れる(図6)。
6. Edit > Project Settings で(図7)
上から3つ目の C# Compiler を選択(図8)。
7. まず Compiler Type を “Custom Package” に変更し(図9)
言語バージョン(Language Version)は Latest を選択。”Apply” する(図10)。
8. テストしてみよう。こんなスクリプトを書いて実行しても
using System.Collections.Generic;
using UnityEngine;
namespace NameTest;
public class TestCode : MonoBehaviour
{
private void Start()
{
// C# 10.0
int x;
(x, var u) = (1, 2);
// C# 9.0
List<string> tests = new();
// C# 8.0
string test = x switch
{
0 => "test",
1 => "hello world",
2 => "good morning",
_ => ""
};
Debug.Log(test); // hello world
}
}
図11のように、エラーを出さずに実行してくれる。これで完了。
9. 新しい機能を使うと、Visual Studio側ではエラーが出るがUnityでは正常に実行可能。
UnityのVisual Studio関連のPackageを入れ直したら直った記憶がある。詳細は忘れてしまったので、知っている人がいたらコメントしてほしい。
Reference
・Unity プロジェクトに C# 8.0, 9.0 を導入してみた|Zenn
・Install and Use C# 9 in Visual Studio 2019|Claudio Bernasconi
・C# Compiler Settings For Unity|GitHub