【Unity】Unityで最新バージョンのC#を使う

概要

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.UnityにおけるC#バージョン


手順

1. 新規プロジェクトを作る

2. Window>Package Managerを選択(図2

図2.Package Manager


3. Add package from git URL…を選択(図3)

図3.gitからパッケージを入れる


4. https://github.com/mob-sakai/CSharpCompilerSettingsForUnity.git と入力して “Add” を押す(図4

図4.gitパッケージの導入

しばらく待つとプラグインが導入される。

図5.プラグインの導入完了



5. PCに.NET 7.0がインストールされていない場合は、それも併せてインストール。バージョンによっては 6.05.0 でも構わない。下のページにアクセスして .NET SDKを入れる(図6)。

図6..NET SDKの導入



6. Edit > Project Settings で(図7

図7.Project Settings

上から3つ目の C# Compiler を選択(図8)。

図8.C# Compiler


7. まず Compiler Type を “Custom Package” に変更し(図9

図9.Custom Package の選択

言語バージョン(Language Version)は Latest を選択。”Apply” する(図10)。

図10.Apply


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のように、エラーを出さずに実行してくれる。これで完了。

図11.C#のバージョンアップ完了


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

作成者: rarafy

2013年くらいからUnityを触っているかもしれません。 特に書くこともありませんが、趣味は部屋の掃除です。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です