UnityのコードエディタをZedにする

先日『Zed + DotRushでC#を書く』という記事を書きました。

Zed + DotRushでC#を書く | nuskey.mdタイトルの通りですが、結構苦戦したので備忘録を兼ねて。記事執筆時のバージョンは以下の通りです。 - Zed 1.15.0 - DotRush 2026.08 C#の開発環境といえばVisual StudioやRiderのようなIDEやVisual Studio Codeを使っている方が多いと思いますが、最近はZedを...www.nuskey.md

これで通常の.NET開発をZedで行えるようになったわけですが、私はUnityもよく触るため、こちらでもZedが使えるようにしたいところです。Unityのコーディング環境は通常の.NETとは少々異なる(.slnx.csprojの生成をUnity側が担っている、ランタイムが古いのでデバッガ周りの要領が異なる、など...)ため、Unityで使うならこの辺りの面倒を見る必要があります。Visual Studio、VSCode、RiderであればUnity公式のパッケージがありますが、Zedは新興のエディタということもあり非対応です。

というわけでこんなものを作りました。

nuskey8 / UnityZedEditorCode editor integration for supporting Zed as code editor for Unity130C#

UnityではPreferencesのExternal Tools > External Script Editorからデフォルトのエディタを設定することができます。ここで任意のアプリケーションを設定することもできるわけですが、デフォルトのままでは.csproj/.slnxの生成や、Consoleのログをクリックした時に適切な場所をエディタで開く、などの操作は提供されません。

これを行うための抽象化としてIExternalCodeEditorが提供されており、これを実装することで任意のエディタをUnityに対応させることができるようになります。UnityZedEditorはこれのZed向けの実装になっています。

というわけでPackage ManagerからUnityZedEditorを追加すると、External Script EditorにZedを設定できるようになります。これによってUnityからZedを開いたりできるようになります。

image

なお、同様の機能を提供するunity-zedというリポジトリも存在していましたが、手元で微妙にうまく動かなかったのと、デバッガ連携がない点や、内部実装が気に入らなかった、などの理由から自作しました。まあ好きな方を使えばいいと思います。

デバッガを接続する

UnityZedEditorはUnity向けの.zed/設定ファイルを自動生成する機能があります。これはUnityの生成フォルダをworkspaceから除外する設定などのほか、デバッガを起動するためのdebug.jsonを生成します。

[
  {
    "label": "Attach to Unity",
    "adapter": "monodbg",
    "request": "attach"
  }
]

Unityのランタイムは現状未だMonoであるため、そちらのデバッガを利用する形です。CoreCLR移行が完了したらこの辺りの事情もまた変わるかもしれませんが、一旦これで行きましょう。

Zedでデバッガを動かすにはこれだけでは不十分で、言語ごとの拡張機能がDAP(Debug Adapter Protocol)に対応している必要があります。しかし、記事執筆時点で公式のC#拡張はDAPに対応していません。というわけで前回に引き続きDotRushを使っていきます。

...と言いたいところですが、現在のDotRushのZed拡張に問題があり、Unityでデバッガが動作しない不具合が発生しています。この件に関してDotRush側にissueを立てたので詳細はこちらを参照してください。

Debugger not working with Zed + DotRush + Unity · Issue #200 · JaneySprings/DotRushFirst of all, thank you for this wonderful piece of open-source software. I am using it with Zed, and it works well. I encountered the following two issues when using the debugger with DotRush, Zed...GitHub

DotRushは外部からのPRを受け付けていないため、一時的な解決策として上記の不具合を修正したforkを作成しました。

nuskey8 / DotRushLightweight C# development environment for VSCode10C#

これを代わりに利用することでデバッガを動作させることができます。いずれにせよDotRushのZed拡張機能を利用する場合は手元にcloneする必要があるため、修正されるまではこちらを利用しましょう。

というわけで前回の記事の手順通りに拡張機能を入れ直してセットアップは完了です。

あとはRun > Start Debuggerを開き、Attach to Unityを選択すればOKです。これでブレークポイントやステップ実行などの機能が動くようになります。

まとめ

というわけでUnityでZedを使えるようになるまでの記事でした。VSCodeのC# Dev Kitに比べると機能面で少々物足りなさがあるのは否定できませんが、これで普通に使える程度にはなったんじゃないでしょうか。

軽く使ってみた感想ですが、DotRushはデフォルト設定のままだと少々使いづらかったため、色々カスタマイズするといい感じになるかもしれません。そのあたりも使いながら試していきたいですね。