55 lines
2.4 KiB
Markdown
55 lines
2.4 KiB
Markdown
---
|
|
id: roslyn
|
|
slug: /guides/roslyn
|
|
title: Roslyn Script Validation (Advanced)
|
|
sidebar_label: Roslyn Validation
|
|
description: Enable strict C# validation that catches undefined namespaces, types, and methods before the script reaches the Unity compiler.
|
|
---
|
|
|
|
# Roslyn Script Validation
|
|
|
|
By default, MCP for Unity uses a fast structural validator for scripts the LLM generates. For **strict** validation that catches undefined namespaces, types, and methods at write time — without a full Unity compile — install the optional Roslyn DLLs.
|
|
|
|
Most users don't need this. Enable it when:
|
|
|
|
- You're letting the LLM write a lot of unsupervised C# and want stricter feedback loops
|
|
- You're seeing recurring compile errors that survive the structural validator
|
|
- You're building custom tools that depend on accurate symbol resolution
|
|
|
|
## One-click installer (recommended)
|
|
|
|
1. Open **Window → MCP for Unity**.
|
|
2. Scroll to the **Runtime Code Execution (Roslyn)** section in the Scripts / Validation tab.
|
|
3. Click **Install Roslyn DLLs**.
|
|
|
|
The installer downloads the required NuGet packages, places the DLLs in `Assets/Plugins/Roslyn/`, and adds `USE_ROSLYN` to Scripting Define Symbols.
|
|
|
|
You can also trigger it from the menu: **Window → MCP for Unity → Install Roslyn DLLs**.
|
|
|
|
## Manual install (if the installer isn't available)
|
|
|
|
1. Install [NuGetForUnity](https://github.com/GlitchEnzo/NuGetForUnity).
|
|
2. Open **Window → NuGet Package Manager**.
|
|
3. Install:
|
|
- `Microsoft.CodeAnalysis` v5.0
|
|
- `SQLitePCLRaw.core` v3.0.2
|
|
- `SQLitePCLRaw.bundle_e_sqlite3` v3.0.2
|
|
4. Add `USE_ROSLYN` to **Player Settings → Scripting Define Symbols**.
|
|
5. Restart Unity.
|
|
|
|
## Manual DLL install (no NuGetForUnity)
|
|
|
|
1. Download `Microsoft.CodeAnalysis.CSharp.dll` and its dependencies from [NuGet.org](https://www.nuget.org/packages/Microsoft.CodeAnalysis.CSharp/).
|
|
2. Place DLLs in `Assets/Plugins/Roslyn/`.
|
|
3. Ensure .NET compatibility settings are correct for your Unity version.
|
|
4. Add `USE_ROSLYN` to Scripting Define Symbols.
|
|
5. Restart Unity.
|
|
|
|
## Verifying it's active
|
|
|
|
After restart, the MCP for Unity status panel shows **Roslyn: enabled** under the Scripts section. The `validate_script` tool now performs full semantic analysis rather than the structural pass.
|
|
|
|
## Disabling
|
|
|
|
Remove `USE_ROSLYN` from Scripting Define Symbols. The plugin falls back to structural validation; the DLLs can stay in `Assets/Plugins/Roslyn/` or be removed.
|