Unity で C# スクリプト：C# 言語のバージョンを確認する

# Unity で C# スクリプト：C# 言語のバージョンを確認する

こんにちは、@studio_meowtoon です。今回は Windows 11 の Unity アプリ開発環境における、C# 言語のバージョンを紹介します。
![csharp_in_unity.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3206449/0a784c1a-f580-0d22-cafc-93c450f28461.png)

## 目的

Unity エディターで使用される C# 言語のバージョンを確認します。

## 開発環境

+ Windows 11 Home 24H2
+ Unity 6000.0.35f1 LTS
+ Visual Studio Community 2022 version 17.12.4

## Unity エディターと C# 言語のバージョン

:::note info
**2025年1月時点**で、サポート期間中の Unity エディターは以下のバージョンです。
:::

|Unity バージョン|リリース日|サポート期限|C# コンパイラ|C# 言語バージョン|
|:--|:--|:--|:--|:--|
|[Unity 2021.3 LTS](https://docs.unity3d.com/ja/2021.3/Manual/index.html)|2022/04/11|late-2024|[Roslyn](https://github.com/dotnet/roslyn)|C# 9.0|
|[Unity 2022.3 LTS](https://docs.unity3d.com/ja/2022.3/Manual/UnityManual.html)|2023/05/30|mid-2025|[Roslyn](https://github.com/dotnet/roslyn)|C# 9.0|
|[Unity 2023.2](https://docs.unity3d.com/ja/2023.2/Manual/UnityManual.html)|2023/11/14|TBA|[Roslyn](https://github.com/dotnet/roslyn)|C# 9.0|
|[Unity 6 LTS](https://docs.unity3d.com/6000.0/Documentation/Manual/UnityManual.html)|2024/10/17|TBA|[Roslyn](https://github.com/dotnet/roslyn)|C# 9.0|

:::note alert
**Unity 2023.2** は 2025年1月時点で **LTS ではありません**。
:::

**Unity C# コンパイラ**

https://docs.unity3d.com/6000.0/Documentation/Manual/csharp-compiler.html

これらのバージョンにおける対応状況から、Unity では、**2025年1月時点**では **C# 9.0** 言語を使用してスクリプトを開発します。

### Roslyn コンパイラについて

:::note info
Roslyn (ロズリン) は、Microsoft によって開発された C# のコンパイラ オープンソース プロジェクトです。
:::

https://github.com/dotnet/roslyn

## C# 9.0 について

:::note info
C# 9.0 は、2020年11月に .NET 5 とともにリリースされました。これは .NET 5 をターゲットにするアセンブリのデフォルト言語バージョンです。
:::

https://learn.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-version-history#c-version-9

## Visual Studio と C# 言語の対応リスト

|言語バージョン|リリース|.NET|Visual Studio|
|:--|:--|:--|:--|
|C# 9.0 |2020/11|.NET 5.0|[Visual Studio 2019](https://visualstudio.microsoft.com/ja/vs/older-downloads/#visual-studio-2019-and-other-products) version 16.8|
|C# 10.0|2021/11|.NET 6.0|[Visual Studio 2022](https://visualstudio.microsoft.com/ja/vs/older-downloads/) version 17.0|
|C# 11.0|2022/11|.NET 7.0|[Visual Studio 2022](https://visualstudio.microsoft.com/ja/vs/older-downloads/) version 17.4|
|C# 12.0|2023/11|.NET 8.0|[Visual Studio 2022](https://visualstudio.microsoft.com/ja/vs/older-downloads/) version 17.8|
|C# 13.0|2024/11|.NET 9.0|[Visual Studio 2022](https://visualstudio.microsoft.com/ja/vs/older-downloads/) version 17.12|

**2025年1月時点**での Unity 開発では、Visual Studio 2019、2022 どちらも利用できます。

## Visual Studio で C# 9.0 を指定

Assembly-CSharp.csproj などで、PropertyGroup > **LangVersion** に **9.0** を指定します。

```xml:Assembly-CSharp.csproj
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <LangVersion>9.0</LangVersion>
  </PropertyGroup>
  <!-- 以下省略 -->
```

## まとめ

Unity エディターで使用される C# 言語のバージョンを確認することができました。

:::note alert
この記事の実装例は一つのアプローチに過ぎず、必ずしも正しい方法とは限りません。他にも多様な方法がありますので、さまざまな情報を照らし合わせて検討してみてください。
:::

どうでしたか？ Window 11 の Unity で3Dゲームを開発する環境を手軽に構築することができます、ぜひお試しください。今後も Unity の開発トピックなどを紹介していきますので、ぜひお楽しみにしてください。