⚛️

UnityでC#10, 11を使えるようする手順メモ

2024/03/30に公開

Cysharpさんの強力パッケージの力を借りてUnityでC#10, 11を使えるようする手順メモ
C#10, 11の記法を使ってもIDEでエラーでないようにも

手順

  1. Unityプロジェクトを作成
  2. CsprojModifierをPackageManagerから追加
  3. 以下の内容で Assets/csc.rsp を追加
    -langVersion:10
    
    • C#11の場合は 10 の代わりに preview を記入する
  4. Assets と同じ階層に以下の内容で LangVersion.props を追加
    <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
        <PropertyGroup>
            <LangVersion>10</LangVersion>
            <Nullable>enable</Nullable>
        </PropertyGroup>
    </Project>
    
    • C#11の場合はLangVersionのところを 10 の代わりに 11 を記入する
  5. ProjectSettings/Editor/C# Project Modifier にて、Additional project imports に LangVersion.props を追加して Regenerate project files を実行
  6. 使えるようになった~🙌

備考・注意点

  • これをやってもC#10, 11の機能の全部が使えるわけではないようなので注意
  • ファイル スコープ名前空間をMonoBehaviourのスクリプトで使うとエディタスクリプトして認識されちゃってアタッチできなくなるとかいくつか正常に動かないところもありそう?

参考

Discussion