A Unity IDE with AI agents

Edit C#, inspect scenes and prefabs, and use AI to investigate and change your project. Connect the running Unity Editor to bring console output and supported Editor actions into the same workflow.

Free IDE for Windows and macOS. Paid plans add AI usage.

UNITYIDE NeonDrift — Assets/Scripts/PlayerController.cs Connected
PlayerController.cs ● Player.prefab MainMenu.uxml Gameplay.inputactions
1using UnityEngine;
2using UnityEngine.InputSystem;
3
4public class PlayerController : MonoBehaviour
5{
6 [SerializeField] float speed = 5.5f;
7 Rigidbody rb;
8
9lifecycle void Awake()
10 {
11 rb = GetComponent<Rigidbody>();
12 }
13
14lifecycle void Update()
15 {
16 var move = moveAction.ReadValue<Vector2>();
17 rb.AddForce(move);
18 }
19}
Problems31 Unity analyzers
UNITY0002 · PlayerController.cs:17
GetComponent called every frame — cache it in Awake.
✓ Quick fix applied · using cached rb from Awake
0 findings · compiled in Unity 6000.3
Assembly-CSharpC# · UTF-8

Why we built it

Every panel here exists because something in Unity cost us a day.

Five of those problems, and what this editor does about each one. Keep scrolling.

01 · Setup

A Unity IDE that just works. No days of setup.

We spent too many afternoons wiring extensions, language servers and debuggers together before writing a line of game code. UnityIDE ships with all of it. Download, add one package to your project, and it finds the running Editor on its own.

Getting started
✓
Download UnityIDE
Windows .exe · macOS .dmg · free
✓
Add the Unity package
Package Manager → Add package from tarball
✓
Open your project
Language server, analyzers and debugger are already there

C# language server, Unity analyzers, debugger, terminal and Git integration included. C# IntelliSense requires the .NET 10 SDK. See the installation requirements for Unity 2021.3 and later.

02 · UI Toolkit

It compiled clean. The Play button did nothing.

A UI Toolkit query is just a string. Get the name wrong and C# is perfectly happy to hand you null at runtime. UnityIDE renders the UXML on a live canvas beside the code — and knows what the element is actually called.

MainMenu.uxml · live canvas
NEON DRIFT
Playname="play"
Garage
Quit
MainMenu.cs
root.Q<Button>("play-btn")
UNITY0501 No element named play-btn. The element in this document is named play.

A mismatched query can compile clean and return null at runtime. UnityIDE checks the element name against the document.

03 · ScriptableObjects

We renamed one field. Three weapons quietly did zero damage.

A ScriptableObject joins an asset to code through a string. Rename the field and every saved instance resets — no compiler error, nothing in the console. UnityIDE holds your assets and your code index at the same time, so it sees the drift and edits the real typed fields in place.

Weapon.cs
public int damage baseDamage = 45;
Rename without a migration
Sword.asset0
Bow.asset0
Staff.asset0
Reset to 0. No error anywhere.
UnityIDEDrift · 3
Sword.asset45 → 45 kept
Bow.asset30 → 30 kept
Staff.asset60 → 60 kept
Detected and reconciled against the class.

The Inspector for a .asset file, inside your editor. Bytes are spliced, never re-serialized.

04 · Unity Hierarchy

The scene, as the running Editor has it open.

We opened Player.prefab to find one missing reference and got 1,847 lines of YAML. UnityIDE shows the hierarchy the Editor is actually running — GameObjects, components, live state — not a file you parsed and hoped about.

1
Player
Unity Hierarchy · SampleScene · connected
PlayerTransformRigidbody
ModelMeshRenderer
Camera RigTransform
Main CameraCamera
Weapon SocketTransform
PistolWeaponBehaviour

Prefabs and scenes open as structure too; diffs read as GameObjects and components. Raw YAML stays one click away, behind a warning.

05 · AI copilot

An agent with Unity in its hands — that proves its work.

Built-in Unity tools: it reads the scene, sets properties with Unity's own Undo stack intact, runs your tests. Then it recompiles in your running Editor — waking it through the OS if it's in the background — and re-checks every file it touched.

It doesn't tell you it worked. It shows you what it checked — and a skipped check is never a passing one.

Make the enemy drop loot on death
✓get_scene_hierarchy
✓unity_set_property Enemy.LootTable
✓unity_run_tests
Verified · EnemyAI.cs +2Unity 6000.3
compileUnity 6000.3 — 0 errorspassed
analyzers31 Unity rules — 0 findingspassed
GUID integrity14 references intactpassed
ScriptableObjectsno drift against the classpassed
inputevery action name resolvespassed
tests3 / 3 passedpassed
Unity consoleEditor not runningnot verified
Reviewable diffs · checkpoint saved · a console error is never "fixed", only not seen again.

Also wired to the Editor

Unity Consolelive
LOGPlayer spawned at (0, 1, 0)PlayerController.cs:18
LOGLoaded 3 input maps, 11 actionsInputBootstrap.cs:9
WARNNavMesh not baked for SampleSceneEnemySpawner.cs:41
ERRNullReferenceExceptionEnemyAI.cs:34
✦ Ask AI about this errorstack trace + EnemyAI.cs:34 attached

Unity Console

Logs stream in live. Every stack frame is a link.

Console output from the running Editor, with click-to-source on every trace. The agent reads the same console — so after a turn it checks for errors it introduced and makes one bounded repair pass.

Input System

Your real action names. Not JSON, not guesses.

Action maps, bindings and control schemes open as a table you can read. The agent reads .inputactions directly, so generated handlers use the actions your project actually defines — and a binding conflict Unity reports nothing about gets flagged.

Gameplay.inputactionsConflict · 1
MapActionBinding
PlayerMoveWASD · Left Stick
PlayerJump<Keyboard>/space · Button South
UINavigateArrows · D-Pad
UISubmit<Keyboard>/space · Button South
Jump loses — it never fires while the UI map is enabled. Unity reports nothing for this.
Unity ProfilerPlay Mode · frame 1,204
SamplemsGC alloc
EnemyAI.Update4.81.2 KB
PlayerController.FixedUpdate0.60 B
✦ AnalyzerGetComponent called every frame in EnemyAI.Update — cache it

Profiler

See the frame. Then see the line that spent it.

Profiler samples from the running Editor, next to the code that produced them. The Unity analyzers already know the usual suspects — allocations inside Update, GetComponent in hot paths, Camera.main lookups — and point at them in the gutter.

Bring your own agent

Use Claude Code in your Unity workspace.

Claude Code connects through ACP on eligible paid UnityIDE plans and uses your provider sign-in. Its own tools, permissions and configured MCP servers determine what it can access. See the AI agent workflow and requirements before connecting.

AgentsACP
CClaude CodeAnthropic · Pro / Max subscriptionSupported
XCodexOpenAI · ChatGPT subscriptionComing soon
Built-in models stay available on every plan.

And the rest

Everything else we needed it to do.

.cs
C# that knows it is Unity
Unity analyzers, lifecycle markers in the gutter, FormerlySerializedAs generation, and a debugger that attaches to the Editor.
.unity .prefab .mat
Scenes and prefabs as structure
Open as a navigable tree. Diffs read as GameObjects and components, not as text.
.asmdef .shader .hlsl
The rest of the project
Assembly definitions, ShaderLab and HLSL are first-class. Meta files stay paired; new files get a valid GUID.
AI
An agent that knows your project
A knowledge graph of classes, YAML, input actions and asmdefs — indexed once, queried by the AI instead of guessed at.

Find your workflow

Code, UI and AI in your Unity project.

AI agents for Unity development

Investigate a console error, plan a C# change, or ask an agent to implement a bounded task. Review the diff and check the result in Unity. Built-in AI and Claude Code have different tools and access requirements.

Explore the Unity AI workflow

UXML and USS editing

Open UI Toolkit source beside a live preview, inspect elements, and work on the interface with design chat. Use the preview while editing, then verify layout and behavior in the Unity Editor.

See UI Toolkit editing and preview

A connected Unity Editor

Install the UnityIDE Unity package, open the same project in both applications, and confirm the connection. Stream console logs, control Play Mode, and run Edit Mode or Play Mode tests when the Unity Test Framework is installed.

Connect your Unity project

Getting started with C#? Follow the UnityIDE installation and IntelliSense setup guide.

Why choose UnityIDE

Compare tools for your Unity workflow.

Capability
UnityIDE
Rider
Visual Studio
Product focus Each product supports Unity development
Unity workflows
.NET and game development
General development
C# editing Completions and source navigation
✓
✓
✓
Debugger attached to the Editor Call stack, variables, watch
✓
✓
✓
AI assistance Availability and usage costs depend on plan and integration
Built-in AI and ACP
JetBrains AI
GitHub Copilot
Price for the IDE AI usage is priced separately; eligibility conditions apply
Free
Paid · free non-commercial
Community · paid editions

Documentation reviewed : Rider and Visual Studio. This is a publisher comparison, not a hands-on benchmark. Rider and Visual Studio are trademarks of their respective owners. Suggest a correction.

UnityIDE and Rider → UnityIDE and VS Code → UnityIDE and Cursor →

Try it on the project that cost you a day.

The IDE is free. Paid plans add AI usage and the bigger reasoning modes — see pricing.

1
Install the IDE on your machine
The desktop app. Pick your OS.

Linux is not built yet.

2
Then add the bridge to your Unity project
A small Editor package. This is what connects the IDE to the running Editor.
com.unityide.editor v0.4.2 · Unity 2021.3 → Unity 6
a Download the .tgz below
b In Unity: Window → Package Manager → + → Add package from tarball…
c Open the project in UnityIDE — it shows Connected