Visual Studio Code can be a great companion to Unity for editing and debugging C# files. All of the C# features are supported and more. In the screen below, you can see code colorization, bracket matching, IntelliSense, CodeLens and that's just the start.
- Unity Visual Studio
- Visual Studio Unity Code Suggestions
- Unity Visual Studio Not Autocompleting
- Unity Visual Studio Not Autocompleting
Search results for 'unity', Visual Studio on marketplace.visualstudio.com. Try to set your external tool editor in unity apps from menu Edit/Preferences/Exernal Tools, in my case as default it set to visual studio 2010 when im using VS 2019 that make it open as selector version and unity function is unknow by VS. Unity Debugger Extension for Visual Studio Code. NOTE: This is a fork of an original Unity debugger extension and should be considered as Preview version of Unity debugger extension. See here for the reasons of fork creation. Please refer to this repo for actual source code of extension. Unity handles the installation of Visual Studio for us, so make sure that the box is ticked for Visual Studio Community 2019. This is what we will be using to create C# code for our games. Finally, we can agree to the Visual Studio EULA and Unity will begin installing.
Read on to find out how to configure Unity and your project to get the best possible experience.
Prerequisites
From Using .NET Core in Visual Studio Code:
- Install the .NET Core SDK, which includes the Runtime and the
dotnet
command. - [Windows only] Logout or restart Windows to allow changes to
%PATH%
to take effect. - [macOS only] To avoid seeing 'Some projects have trouble loading. Please review the output for more details', make sure to install the latest stable Mono release.Note: This version of Mono, which is installed into your system, will not interfere with the version of MonoDevelop that is installed by Unity.
- Install the C# extension from the VS Code Marketplace.
Setup VS Code as Unity Script Editor
Open up Unity Preferences, External Tools, then browse for the Visual Studio Code executable as External Script Editor.
The Visual Studio Code executable can be found at
/Applications/Visual Studio Code.app
on macOS, %localappdata%ProgramsMicrosoft VS CodeCode.exe
on Windows by default.Unity has built-in support for opening scripts in Visual Studio Code as an external script editor on Windows and macOS. Unity will detect when Visual Studio Code is selected as an external script editor and pass the correct arguments to it when opening scripts from Unity. Unity will also set up a default
.vscode/settings.json
with file excludes, if it does not already exist (from Unity 5.5 Release notes).Unity version 2019.2 or above
Since 2019.2, it is required to use the Visual Studio Code editor package. The built-in support for opening scripts from Unity and getting
csproj
and sln
files generated has been removed.Editing Evolved
With the solution file selected, you are now ready to start editing with VS Code. Here is a list of some of the things you can expect:
- Syntax Highlighting
- Bracket matching
- IntelliSense
- Snippets
- CodeLens
- Peek
- Go-to Definition
- Code Actions/Lightbulbs
- Go to symbol
- Hover
Two topics that will help you are Basic Editing and C#. In the image below, you can see VS Code showing hover context, peeking references and more.
Unity Extensions
The community is continually developing more and more valuable extensions for Unity. Here are some popular extensions that you might find useful. You can search for more extensions in the VS Code Extension Marketplace.
The extensions shown above are dynamically queried. Select an extension tile above to read the description and reviews to decide which extension is best for you. See more in the Marketplace.
![Unity Visual Studio Unity Visual Studio](/uploads/1/1/7/8/117802750/311026327.jpg)
Enabling code completion (For recent versions of Unity)
If you are installing VS Code for the first time, you might be missing targeting packs required for Unity's code-completion (IntelliSense) in VS Code.
Targeting pack download links:
Steps:
- Stop VS Code or Unity running.
- Download and install the targeting pack for your targeted framework version / preferred version from one of the above links.
- Start Unity.
- Create and/or open an existing script in VS Code, through Unity, and you should now see code completions.
Enabling Unity warnings
Unity has a set of custom C# warnings, called analyzers, that check for common issues with your source code. These analyzers ship out of the box with Visual Studio but need to be set up manually in Visual Studio Code.
Due to how Unity handles its
.csproj
files, it does not seem possible to install packages automatically. You will need to download the analyzers from the NuGet website manually. When you're done, open the package file using a tool such as 7zip and extract Microsoft.Unity.Analyzers.dll
onto your project's root folder. You can place it inside a folder named NuGet
, for example. Do not place it inside Assets
or Packages
, as that will cause Unity to try to process the .dll
, which will make it output an error in the console.Next, create an
omnisharp.json
file at the root folder of your project, as explained here. Analyzer support in OmniSharp is experimental at the moment, so we need to enable it explicitly. We also need to point it to the .dll
file we just extracted.Your
omnisharp.json
file should end up looking like this:where
'./NuGet/microsoft.unity.analyzers.1.9.0'
is a relative path pointing to the folder containing the .dll
file. Depending on where you placed it, your path may look different.The Unity analyzers should now be working in your project. You can test them by creating an empty
FixedUpdate()
method inside one of your MonoBehavior
classes, which should trigger a The Unity message 'FixedUpdate' is empty
warning (UNT0001).Unity Visual Studio
Note that while it is possible to activate these analyzers, the suppressors they ship with the package (that turn off other C# warnings that may conflict with these custom ones) may not be picked up by OmniSharp at the moment, according to this thread. You can still turn off specific rules manually by following these steps:
- Create a
.editorconfig
file in your project's root folder (next to Unity's.csproj
files). - Add the following contents to the file:
root=true
tells OmniSharp that this is your project root and it should stop looking for parent .editorconfig
files outside of this folder.dotnet_diagnostic.IDE0051.severity = none
is an example of turning off the analyzer with ID IDE0051
by setting its severity level to none
. You can read more about these settings in the Analyzer overview. You can add as many of these rules as you wish to this file.[*.cs]
indicates that our custom rules should apply to all C# scripts (files with the .cs
extension).You are now ready to code in Visual Studio Code, while getting the same warnings as you would when using Visual Studio!
Next steps
Read on to learn more about:
- Basic Editing - Learn about the powerful VS Code editor.
- Code Navigation - Move quickly through your source code.
- Debugging - how to use the debugger with your project
- C# - learn about the C# support in VS Code
Common questions
I don't have IntelliSense
![Visual Visual](/uploads/1/1/7/8/117802750/804951148.jpg)
You need to ensure that your solution is open in VS Code (not just a single file). Open the folder with your solution and you usually will not need to do anything else. If for some reason VS Code has not selected the right solution context, you can change the selected project by clicking on the OmniSharp flame icon on the status bar.
Choose the
-CSharp
version of the solution file and VS Code will light up.How can I change the file exclusions?
Unity creates a number of additional files that can clutter your workspace in VS Code. You can easily hide these so that you can focus on the files you actually want to edit.
To do this, add the following JSON to your workspace settings.
As you can see below this will clean things up a lot..
Before | After |
---|
Visual Studio Unity Code Suggestions
How can I debug Unity?
Install the Debugger for Unity extension. And check out Debugging with VS Code to learn more about VS Code debugging support.
5/2/2017
What you will get from this page: Handy tips to help you be more productive when using Microsoft Visual Studio or Visual Studio for Mac as the code editor for your Unity projects. Visual Studio and Visual Studio for Mac come with a suite of tools for Unity, including IntelliSense support for Unity API messages, debugging and inspecting features, the Unity Project Explorer, and Attach and Play. Thanks to John Miller from Microsoft who provided these tips in his Unite Copenhagen session.
Update Visual Studio
This is an obvious but important reminder that you can update Microsoft Visual Studio independently of the version of Unity you’re on, without breaking things in your project. The latest version of Visual Studio always provides performance improvements on both Windows and Mac that save you valuable time. It's super simple to update; you can see how it’s done in this image.
You can avoid costly delays that come with cold launching Visual Studio by simply leaving the editor open. It will continue to synchronize your changes as you operate back and forth between Visual Studio and the Unity Editor.
Reduce load time
You can save some loading time by unchecking the box “Restore Solution Explorer project hierarchy state on solution load.” However, if you want to expand all your folders when you launch your solutions so as to write to the file you had open the last time, then don't uncheck this box.
Save time with keyboard shortcuts
Use CTRL+T (Windows) Shift+CMD+F (Mac) to search your entire project for anything.
Work faster with Unity APIs
You can access Unity documentation directly from within the Visual Studio editor on Windows and Mac. To do so, highlight the Unity function you want to know more about. Then you can either go to Help > Unity API Reference or use keyboard shortcuts Ctrl+Alt+M, Ctrl+H or Cmd+' to launch your browser either inside the integrated development environment (IDE) or externally.
If you have a long file with a lot of code, it can be super helpful to customize the fonts and colors of Unity API methods for quick identification.
Navigate easily with Unity Project Explorer
The Unity Project Explorer improves upon the older Solution Explorer view with a cleaner layout that maps to your project folder view in Unity. This makes it easier to navigate between Unity and Visual Studio.
Unity Visual Studio Not Autocompleting
On Windows, with Visual Studio 2019 the Project Explorer is on by default. To enable it with older versions, go to View > Unity Project Explorer or hit Shift+Alt+E. On Mac, the Project Explorer is displayed by default. If you use both Solution Explorer and Project Explorer, you can see a synchronized view of your files.
Debug faster with Attach and Play
Instead of clicking Attach to Unity and then switching to Unity to press Play, you can use the Attach to Unity and Play configuration to make it a one-step operation. This will attach the debugger and play Unity; you don’t have to leave the IDE, thereby speeding up your debugging workflow.
Unity Visual Studio Not Autocompleting
Use IntelliCode
IntelliCode is the AI-powered and machine learning model for improving IntelliSense. Intellicode saves you time by listing auto completion suggestions in an order based on what you’re most likely to use. To use it, open a project in Visual Studio, open Intellicode, and choose the option “Train Intellicode” (in VS 2019; in VS 2017, IntelliCode is a separate extension that can be installed from the Visual Studio Marketplace). It will then generate a model based on the open project; using those learnings it can provide suggestions for other projects. In his session, John talks about how he used the Unity FPS sample project to show what’s possible with IntelliCode.
Collaborate better with Live Share
This last tip is a good one for collaboration. Click “Live Share” to generate a link to parts of your code that you can then share with anyone that has Visual Studio or Visual Studio Code installed. A sharing session is created between you and your collaborators, allowing them to see your code without having to install anything except for the editor.