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 |