UnityでMCPツールが「ファイル名が長すぎます」エラーになった時の解決策

Unity のMCP(モデルコンテキストプロトコル)ツールを使ってC#コードを実行する際に、こんなエラーが出ることがあります。

Error running mono.exe: ファイル名または拡張子が長すぎます。

なぜこのエラーが起きるのか

UnityのMCPツールは、通常「CodeDom」という仕組みでC#をコンパイルします。このCodeDomは、コードをコンパイルする際にWindows上でmono.exeというプログラムを起動しますが、その時に使用するアセンブリ(DLL)のパス情報をコマンドラインで渡します。

Unityプロジェクトが多くのパッケージを使っていると、これらのパス情報が合計で長くなりすぎて、Windows が許可している文字数の制限(260文字)を超えてしまい、エラーになるのです。

解決策:Roslyn を使う

CodeDom の代わりに「Roslyn」(マイクロソフトの公式なC#コンパイラ)をメモリ内で直接動かすことで、この問題を回避できます。幸いなことに、Unityには既にRoslynが組み込まれているので、それを有効化するだけです。

実装方法

以下のコードを Assets/Editor/RoslynLoader.cs として保存してください。

[InitializeOnLoad]
static class RoslynLoader
{
    static RoslynLoader()
    {
        var editorData = Path.GetDirectoryName(UnityEditor.EditorApplication.applicationPath);
        var roslynDir = Path.Combine(editorData, "Data", "MonoBleedingEdge", "lib",
                                     "mono", "msbuild", "Current", "bin", "Roslyn");

        var dlls = new[]
        {
            "System.Collections.Immutable.dll",
            "Microsoft.CodeAnalysis.dll",
            "Microsoft.CodeAnalysis.CSharp.dll",
        };

        foreach (var dll in dlls)
            if (File.Exists(Path.Combine(roslynDir, dll)))
                Assembly.LoadFrom(Path.Combine(roslynDir, dll));
    }
}

このコードはUnityの起動時に自動実行され、RoslynのDLLファイルをメモリにロードします。[InitializeOnLoad]属性により、Unityが起動するたびに自動的に実行されます。

確認方法

実装後、MCPツールで以下のコードを実行してみてください。

return System.Type.GetType(
    "Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree, Microsoft.CodeAnalysis.CSharp"
) != null ? "Roslyn有効" : "未ロード";

「Roslyn有効」と表示されれば成功です。これで長いファイルパスの問題が解消され、エラーなくコードが実行できるようになります。

LFP電池の民主化戦略:全固体より今、低価格EV勢力図が2026年に変わる

LFP電池の民主化戦略:全固体より今、低価格EV勢力図が2026年に変わる

記事代表画像

Wikimedia Commons – Lithium-Ion Battery for BMW i3

LFP電池が加速するEVの価格破壊

2026年、電池技術の進化が異なる方向へ分岐している。トヨタ・日産が全固体電池の2027~2028年実用化を目指す一方で、市場の現実はリン酸鉄リチウム(LFP)電池による「今のEV民主化」へシフトしている。

LFP電池はNMC(三元系)電池比で1kWh当たりのコストが30%低く、ニッケルやコバルトなどの希少金属をほぼ不要とする。この利点がいま、200万円台の軽乗用EV実現を可能にしている。スズキが目指す軽EV「Vision e-Sky」はこの価格帯を実現し、中国・BYDの「ラッコ」も2026年夏の日本市場投入を予定している。

中国勢の圧倒的シェア拡大

中国市場におけるLFP電池の採用率は、2025年1~9月で乗用車向け75.8%に達した。2021年の39.4%から急速に拡大したこの動きは、単なる技術選択ではなく、市場戦略の結果だ。

世界のリチウム鉄リン酸バッテリー市場規模は2025年の233.97億ドルから2026年に303.6億ドル、2034年には770.7億ドルに成長すると予測される。中国メーカーはこの成長をLFP技術で主導権を握る形で実行しており、日本・欧米メーカーは対応を迫られている。

戦略的選択:全固体か、LFPか

全固体電池の実用化は革新的だが、2028年以降の市場投入となる。一方、LFP電池は今、手頃な価格と実用的な性能で普及段階に入っている。充電インフラ30万口の拡大、航続距離500~700kmクラスの充実により、LFP搭載車の実用性は十分だ。

日本市場が直面するのは、次世代技術の完成度を待つのか、現在の最適解で市場シェアを確保するのか、という経営判断である。

参考情報