Unity support: Rider vs. Visual Studio vs. Visual Studio for Mac

This document illustrates some points where Unity framework support differs in JetBrains Rider, Microsoft Visual Studio, and Microsoft Visual Studio for Mac. Note that this document is an addition to the main comparison table, which lists general features of the products.

As the compared products are being actively developed and their functionality changes on a regular basis, we consider this comparison valid for specific releases that are indicated in the header of the comparison table.

If you discover any missing or inaccurate items in this table, please post a comment below to let us know, and we'll update the table as soon as possible.

Microsoft Visual Studio 2019 16.2.3

Microsoft Visual Studio 2019 for Mac 8.2.5

JetBrains Rider 2019.2

General
Built in support for Unity
Built in support for Unity
Built in support for Unity
Support for .meta files - creation, deletion, rename
Support for .meta files - creation, deletion, rename
Unity Project Explorer tool window shows file system view of Assets and Packages folders
Solution explorer includes Unity project view, showing file system view of Assets and Packages folders
Unity Explorer tool window shows Assets folder, and lists Packages, including local file packages, git packages, and read only packages and modules
ShaderLab file support
ShaderLab file support
Support for declared properties in ShaderLab files
Auto refresh assets (background compile)
Auto refresh assets (background compile)
Show Unity Console log with parsed stack traces - click to navigate
Control play mode: enter play mode, pause, and step from the toolbar
Navigation and search
Find usages of UnityEvent handler methods and Component classes in scenes, prefabs and assets, grouped by type, associated component and game object hierarchy
Navigate to usages of code inside Unity, highlighting game objects inside the Unity Hierarchy window
Go to Declaration and Find Usages support for coroutine names passed as string literal arguments
Coding assistance
Code completion and generation of Unity event functions
Code completion and generation of Unity event functions
Code completion and generation of Unity event functions
Links to installed or online Unity documentation
Links to installed or online Unity documentation
Links to installed or online Unity documentation
2 file templates
3 file templates
15 File and 11 Live Templates for creating Unity related files, serialised fields, logging and more
Code completion and validation for tag, layer, scene and input names
Code completion, validation and rename for coroutine names passed as string literal arguments
10 Context Actions, including easy manipulation of Inspector related attributes for serialised fields
Summary documentation tooltips for Unity event functions
Code vision
Code Vision shows usage count of classes and methods inside Unity scenes, prefabs and assets, inside the editor, with single click to Find Usages
Code Vision shows actual values of serialised fields, from scenes, prefabs and assets, with single click to Find Usages
Code analysis
Semantic highlighting for Unity event function declarations
Semantic highlighting for Unity Object derived classes, event functions, serialised fields and UnityEvent handlers. Highlighting is configurable: text style (e.g. bold, italic, colours), interactive gutter icons or Code Vision information
38 Unity-related inspections, most including "Why is Rider suggesting this?" explanations
27 Unity-specific quick-fixes
Classes, functions and serialised fields used implicitly by Unity are not marked as unused”
Performance
Highlights usage of expensive methods inside frequently called event functions, such as calling GetComponent inside Update
Inspections, quick-fixes and context actions for known performance issues
dotTrace performance profiling of Unity editor on Windows, Mac and Linux
HeapAllocation plugin will highlight memory allocations generated by the compiler due to boxing, closures, etc.
Debugging
Debugging Unity C# code out of the box
Debugging Unity C# code out of the box
Debugging Unity C# code out of the box
Automatically configure debugger to attach to Unity editor
Automatically configure debugger to attach to Unity editor
Automatically configure debugger to attach to Unity editor
Attach debugger to the editor and enter the play mode
Attach debugger to the editor and enter the play mode
Attach debugger to the editor and enter the play mode
Attach debugger to remote and standalone players
Attach debugger to remote and standalone players
Attach debugger to remote and standalone players
Debugging iOS and Android players based on IL2CPP (requires Unity 2018.2+)
Debugging iOS and Android players based on IL2CPP (requires Unity 2018.2+)
Debugging iOS and Android players based on IL2CPP (requires Unity 2018.2+)
Debugging iOS and Android via WiFi or USB
Debugging iOS and Android via WiFi or USB
Debugging iOS and Android via WiFi
Debugging DirectX 11/12 shaders
Debugging DirectX 11/12 shaders
Android support: LogCat viewer, device explorer, profiling tools
Debugger extends certain Unity types with extra information: Scenes list all root game objects, GameObject will lists components and child game objects ECS Entity lists attached component data
Unit testing
Run and debug Unity unit tests (only edit-mode tests, play-mode tests not yet supported)
Free 30-day trial