Vscode Unity

  

Important: The Unity plug-in requires an earlier version of the OmniSharp C# extension. If you are using the preview C# extension, please uninstall it and install the Legacy C# Support extension.

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.

Visual Studio Code is a great code editor and fully compatible with Unity. If you don't know it and you want to start working with it; this little tutorial is for you Unity Tutorial Level: Beginner. 2.1 Why Visual Studio Code? When you install Unity, at a certain step in the installation, it'll prompt you if you want to install 'Visual Studio Community'. You can use this as your IDE for coding if you'd like. Doing it this way will do all the setup for you. You'll get debuggin/intellisense/etc with very little fuss.

Read on to find out how to configure Unity and your project to get the best possible experience.

Note: VS Code uses a more recent version of Mono than that included with Unity. If you get OmniSharp errors, you may need to update your Mono version. See this FAQ topic for additional details.

Connecting Unity and VS Code

  • Add%LOCALAPPDATA%/Programs to the path of install paths. 1.0.3 - 2019-01-01 This is the first release of Unity Package vscodeeditor. Using the newly created api to integrate Visual Studio Code.
  • Visual Studio Code offers native support to Windows/Mac/Linux in a much more lightweight form than your standard Visual Studio. This Unity Tutorial shows you.
  • Com.unity.ide.vscode 2019.4 verified Description. Code editor integration for supporting Visual Studio Code as code editor for unity. Adds support for generating csproj files for intellisense purposes, auto discovery of installations, etc. Version information Verified for Unity. Package version 1.2.3 is verified for Unity Editor version 2019.4.

The easiest way to get going is to leverage a Unity plug-in maintained by @Reapazor. This plug-in streamlines the integration process significantly by performing the following tasks:

  1. Sets VS Code as the default editor - opening a script now opens it in VS Code
  2. Configures Unity to pass file and line numbers and reuse the existing window - so VS Code opens in the correct context
  3. Scrubs the Unity project file to ensure that OmniSharp can work with it - to get the best editing experience
  4. Configures VS Code to ignore certain Unity file types - removing clutter from the VS Code file explorer
  5. Configures a launch.json file with the correct debug port - to enable debugging. However, installing the Debugger for Unity is recommended to get debugging support.

Step 0: Install the Legacy C# Support extension

The Unity plug-in requires an earlier version of the OmniSharp language service available with the Legacy C# Support extension.

Install: From within Visual Studio Code, you can use Quick Open (kb(workbench.action.quickOpen)) and paste ext install omnisharp then press kbstyle(Enter).

Step 1: Download the plug-in code

Open up a console and do a clone of the repo to get the plug-in source code.

Step 2: Add the plug-in to your project

Go to the folder where you downloaded the plug-in source code and copy the PluginsEditordotBunny folder to your Unity project.

Tip: You may need to create a Plugins folder. Typically this should be stored under Assets.

To turn on the use of the provided integration, you will need to go to Unity Preferences and select the newly created VSCode tab.

Toggle on Enable Integration and you are ready to get going.

Additionally, you can toggle Output Messages To Console which will echo output to the Unity console e.g. whether the debug port was found. This is useful for debugging any issues with the integration.

Clicking the Write Workspace Settings button will configure the workspace settings to filter out non-code assets created by Unity e.g. .meta files.

Step 3: Open the Project

Now available in the Assets menu is Open C# Project In Code. This will open the project in VS Code in the context of the root folder of your project. This enables VS Code to find your Unity project's solution file.

Tip: You probably want to leave a VS Code window open with the project context established. That way when you open a file from Unity it will have all the required context.

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:

Vs code unity
  • 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 Editing Evolved and C#. In the image below, you can see VS Code showing hover context, peeking references and more.

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 find more extensions in the VS Code Extension Marketplace.

  • Debugger for Unity - Debug your Unity projects in VS Code.
  • Unity Tools - This extension adds extra functionality such as integrating Unity documentation and the Unity Asset Store with VS Code.

Next Steps

Read on to learn more about:

  • Editing Evolved - find out more about the evolved editing features
  • Debugging - how to use the debugger with your project
  • C# - learn about the C# support in VS Code

Common Questions

Q: I don't have IntelliSense.

A: 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.

Q: How can I manually configure Editor Settings?

A: To set VS Code as the External Editor for Unity go to the Edit > Preferences... menu. From there move to the External Tools tab where you should see a screen like the following:

Click the browse button and set the VS Code executable (under Program Files (x86)Microsoft VS CodeCode.exe) as the External Script Editor.

How to code with unity

This will enable Unity to launch VS Code whenever you open a script.

Q: I want to set the command line arguments when I launch VS Code.

A: The workflow between Unity and VS Code is much smoother if you reopen an existing editor window and pass in context so that the editor lands on the exact line number and column location (for example to navigate to a compile bug).

Note: This option is only available in the Windows version of Unity. For Mac users, the Unity plug-in described above handles setting up the command line arguments.

To configure Unity to pass this data to VS Code, set the Editor Args to be . -g '$(File):$(Line)'. You can see this step completed in the image above.

Q: How can I change the file exclusions?

A: 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...

BeforeAfter

Q: VS Code did not go the correct position in my file.

A: For OS X, make sure you have installed the Unity plug-in described above. For Windows, ensure you have set the additional command line arguments when you launch VS Code from Unity.

Q: How can I debug Unity?

A: Install the Debugger for Unity extension.

Our docs contain a Common questions section as needed for specific topics. We've captured items here that don't fit in the other topics.

If you don't see an answer to your question here, check our previously reported issues on GitHub and our release notes.

What is the difference between Visual Studio Code and Visual Studio IDE?

Visual Studio Code is a streamlined code editor with support for development operations like debugging, task running, and version control. It aims to provide just the tools a developer needs for a quick code-build-debug cycle and leaves more complex workflows to fuller featured IDEs, such as Visual Studio IDE.

Which OSs are supported?

VS Code runs on macOS, Linux, and Windows. See the Requirements documentation for the supported versions. You can find more platform specific details in the Setup overview.

Is VS Code free?

Yes, VS Code is free for private or commercial use. See the product license for details.

How to disable telemetry reporting

VS Code collects usage data and sends it to Microsoft to help improve our products and services. Read our privacy statement and telemetry documentation to learn more.

If you don't wish to send usage data to Microsoft, you can set the telemetry.enableTelemetry user setting to false.

From File > Preferences > Settings (macOS: Code > Preferences > Settings), search for telemetry, and uncheck the Telemetry: Enable Telemetry setting. This will silence all telemetry events from VS Code going forward.

Important Notice: VS Code gives you the option to install Microsoft and third party extensions. These extensions may be collecting their own usage data and are not controlled by the telemetry.enableTelemetry setting. Consult the specific extension's documentation to learn about its telemetry reporting.

How to disable experiments

VS Code uses experiments to try out new features or progressively roll them out. Our experimentation framework calls out to a Microsoft-owned service and is therefore disabled when telemetry is disabled. However, if you wish to disable experiments regardless of your telemetry preferences, you may set the workbench.enableExperiments user setting to false.

From File > Preferences > Settings (macOS: Code > Preferences > Settings), search for experiments, and uncheck the Workbench: Enable Experiments setting. This will prevent VS Code from calling out to the service and opt out of any ongoing experiments.

How to disable crash reporting

VS Code collects data about any crashes that occur and sends it to Microsoft to help improve our products and services. Read our privacy statement and telemetry documentation to learn more.

If you don't wish to send crash data to Microsoft, you can change the enable-crash-reporter runtime argument to false

  • Open the Command Palette (⇧⌘P (Windows, Linux Ctrl+Shift+P)).
  • Run the Preferences: Configure Runtime Arguments command.
  • This command will open a argv.json file to configure runtime arguments.
  • Edit 'enable-crash-reporter': false.
  • Restart VS Code.

GDPR and VS Code

Now that the General Data Protection Regulation (GDPR) is in effect, we want to take this opportunity to reiterate that we take privacy very seriously. That's both for Microsoft as a company and specifically within the VS Code team.

To support GDPR:

  • The VS Code product notifies all users that they can opt out of telemetry collection.
  • The team actively reviews and classifies all telemetry sent (documented in our OSS codebase).
  • There are valid data retention policies in place for any data collected, for example crash dumps.

You can learn more about VS Code's GDPR compliance in the telemetry documentation.

What online services does VS Code use?

Beyond crash reporting and telemetry, VS Code uses online services for various other purposes such as downloading product updates, finding, installing, and updating extensions, or providing Natural Language Search within the Settings editor. You can learn more in Managing online services.

You can choose to turn on/off features that use these services. From File > Preferences > Settings (macOS: Code > Preferences > Settings), and type the tag @tag:usesOnlineServices. This will display all settings that control the usage of online services and you can individually switch them on or off.

How do I opt out of VS Code auto-updates?

Vscode unity hidden meta files

By default, VS Code is set up to auto-update for macOS and Windows users when we release new updates. If you do not want to get automatic updates, you can set the Update: Mode setting from default to none.

To modify the update mode, go to File > Preferences > Settings (macOS: Code > Preferences > Settings), search for update mode and change the setting to none.

If you use the JSON editor for your settings, add the following line:

You can install a previous release of VS Code by uninstalling your current version and then installing the download provided at the top of a specific release notes page.

Note: On Linux: If the VS Code repository was installed correctly then your system package manager should handle auto-updating in the same way as other packages on the system. See Installing VS Code on Linux.

Opt out of extension updates

By default, VS Code will also auto-update extensions as new versions become available. If you do not want extensions to automatically update, you can clear the Extensions: Auto Update check box in the Settings editor (⌘, (Windows, Linux Ctrl+,)).

If you use the JSON editor to modify your settings, add the following line:

Licensing

Location

You can find the VS Code licenses, third party notices and Chromium Open Source credit list under your VS Code installation location resourcesapp folder. VS Code's ThirdPartyNotices.txt, Chromium's Credits_*.html, and VS Code's English language LICENSE.txt are available under resourcesapp. Localized versions of LICENSE.txt by Language ID are under resourcesapplicenses.

Why does Visual Studio Code have a different license than the vscode GitHub repository?

To learn why Visual Studio Code, the product, has a different license than the open-source vscode GitHub repository, see issue #60 for a detailed explanation.

What is the difference between the vscode repository and the Microsoft Visual Studio Code distribution?

The github.com/microsoft/vscode repository (Code - OSS) is where we develop the Visual Studio Code product. Not only do we write code and work on issues there, we also publish our roadmap and monthly iteration and endgame plans. The source code is available to everyone under a standard MIT license.

Vscode Unity Hidden Meta Files

Visual Studio Code is a distribution of the Code - OSS repository with Microsoft specific customizations (including source code), released under a traditional Microsoft product license.

See the Visual Studio Code and 'Code - OSS' Differences article for more details.

What does 'Built on Open Source' mean?

Microsoft Visual Studio Code is a Microsoft licensed distribution of 'Code - OSS' that includes Microsoft proprietary assets (such as icons) and features (Visual Studio Marketplace integration, small aspects of enabling Remote Development). While these additions make up a very small percentage of the overall distribution code base, it is more accurate to say that Visual Studio Code is 'built' on open source, rather than 'is' open source, because of these differences. More information on what each distribution includes can be found in the Visual Studio Code and 'Code - OSS' Differences article.

How do I find the license for an extension?

Most extensions link to their license on their Marketplace page or in the overview section, when you select an extension in the Extensions view.

For example:

If you don't find a link to the license, you may find a license in the extension's repository if it is public, or you can contact the extension author through the Q & A section of the Marketplace.

Are all VS Code extensions open source?

Extension authors are free to choose a license that fits their business needs. While many extension authors have opted to release their source code under an open-source license, some extensions like Wallaby.js, Google Cloud Code, and the VS Code Remote Development extensions use proprietary licenses.

At Microsoft, we open source our extensions whenever possible. However, reliance on existing proprietary source code or libraries, source code that crosses into Microsoft licensed tools or services (for example Visual Studio), and business model differences across the entirety of Microsoft will result in some extensions using a proprietary license. You can find a list of Microsoft contributed Visual Studio Code extensions and their licenses in the Microsoft Extension Licenses article.

How do I find the version?

You can find the VS Code version information in the About dialog box.

On macOS, go to Code > About Visual Studio Code.

On Windows and Linux, go to Help > About.

The VS Code version is the first Version number listed and has the version format 'major.minor.release', for example '1.27.0'.

Previous release versions

You can find links to some release downloads at the top of a version's release notes:

If you need a type of installation not listed there, you can manually download via the following URLs:

Download typeURL
Windows 64 bit System installerhttps://update.code.visualstudio.com/{version}/win32-x64/stable
Windows 64 bit User installerhttps://update.code.visualstudio.com/{version}/win32-x64-user/stable
Windows 64 bit ziphttps://update.code.visualstudio.com/{version}/win32-x64-archive/stable
Windows 64 bit ARM System installerhttps://update.code.visualstudio.com/{version}/win32-arm64/stable
Windows 64 bit ARM User installerhttps://update.code.visualstudio.com/{version}/win32-arm64-user/stable
Windows 64 bit ARM ziphttps://update.code.visualstudio.com/{version}/win32-arm64-archive/stable
Windows 32 bit System installerhttps://update.code.visualstudio.com/{version}/win32/stable
Windows 32 bit User installerhttps://update.code.visualstudio.com/{version}/win32-user/stable
Windows 32 bit ziphttps://update.code.visualstudio.com/{version}/win32-archive/stable
macOShttps://update.code.visualstudio.com/{version}/darwin/stable
Linux 64 bithttps://update.code.visualstudio.com/{version}/linux-x64/stable
Linux 64 bit debianhttps://update.code.visualstudio.com/{version}/linux-deb-x64/stable
Linux 64 bit rpmhttps://update.code.visualstudio.com/{version}/linux-rpm-x64/stable
Linux 64 bit snaphttps://update.code.visualstudio.com/{version}/linux-snap-x64/stable
Linux ARMhttps://update.code.visualstudio.com/{version}/linux-armhf/stable
Linux ARM debianhttps://update.code.visualstudio.com/{version}/linux-deb-armhf/stable
Linux ARM rpmhttps://update.code.visualstudio.com/{version}/linux-rpm-armhf/stable
Linux 64 bit ARMhttps://update.code.visualstudio.com/{version}/linux-arm64/stable
Linux 64 bit ARM debianhttps://update.code.visualstudio.com/{version}/linux-deb-arm64/stable
Linux 64 bit ARM rpmhttps://update.code.visualstudio.com/{version}/linux-rpm-arm64/stable

Substitute the specific release you want in the {version} placeholder. For example, to download the Linux ARM debian version for 1.50.1, you would use

You can use the version string latest, if you'd like to always download the latest VS Code stable version.

Prerelease versions

Want an early peek at new VS Code features? You can try prerelease versions of VS Code by installing the 'Insiders' build. The Insiders build installs side by side to your stable VS Code install and has isolated settings, configurations, and extensions. The Insiders build is updated nightly so you'll get the latest bug fixes and feature updates from the day before.

To install the Insiders build, go to the Insiders download page.

What is a VS Code 'workspace'?

Vscode Unity Debugger Not Working

A VS Code 'workspace' is usually just your project root folder. VS Code uses the 'workspace' concept in order to scope project configurations such as project-specific settings as well as config files for debugging and tasks. Workspace files are stored at the project root in a .vscode folder. You can also have more than one root folder in a VS Code workspace through a feature called Multi-root workspaces.

You can learn more in the What is a VS Code 'workspace'? article.

Can I run a portable version of VS Code?

Yes, VS Code has a Portable Mode that lets you keep settings and data in the same location as your installation, for example, on a USB drive.

Report an issue with a VS Code extension

For bugs, feature requests or to contact an extension author, you should use the links available in the Visual Studio Code Marketplace or use Help: Report Issue from the Command Palette. However, if there is an issue where an extension does not follow our code of conduct, for example it includes profanity, pornography or presents a risk to the user, then we have an email alias to report the issue. Once the mail is received, our Marketplace team will look into an appropriate course of action, up to and including unpublishing the extension.

VS Code gets unresponsive right after opening a folder

When you open a folder, VS Code will search for typical project files to offer you additional tooling (for example, the solution picker in the Status bar to open a solution). If you open a folder with lots of files, the search can take a large amount of time and CPU resources during which VS Code might be slow to respond. We plan to improve this in the future but for now you can exclude folders from the explorer via the files.exclude setting and they will not be searched for project files:

VS Code is blank?

The Electron shell used by Visual Studio Code has trouble with some GPU (graphics processing unit) hardware acceleration. If VS Code is displaying a blank (empty) main window, you can try disabling GPU acceleration when launching VS Code by adding the Electron --disable-gpu command-line switch.

Vscode Unity Linux

Installation appears to be corrupt [Unsupported]

VS Code does a background check to detect if the installation has been changed on disk and if so, you will see the text [Unsupported] in the title bar. This is done since some extensions directly modify (patch) the VS Code product in such a way that is semi-permanent (until the next update) and this can cause hard to reproduce issues. We are not trying to block VS Code patching, but we want to raise awareness that patching VS Code means you are running an unsupported version. Reinstalling VS Code will replace the modified files and silence the warning.

You may also see the [Unsupported] message if VS Code files have been mistakenly quarantined or removed by anti-virus software (see issue #94858 for an example). Check your anti-virus software settings and reinstall VS Code to repair the missing files.

Resolving Shell Environment is Slow (Error, Warning)

This section applies to macOS and Linux environments only.

When VS Code is launched from a terminal (for example, via code .), it has access to environment settings defined in your .bashrc or .zshrc files. This means features like tasks or debug targets also have access to those settings.

However, when launching from your platform's user interface (for example, the VS Code icon in the macOS dock), you normally are not running in the context of a shell and you don't have access to those environment settings. This means that depending on how you launch VS Code, you may not have the same environment.

To work around this, when launched via a UI gesture, VS Code will start a small process to run (or 'resolve') the shell environment defined in your .bashrc or .zshrc files. If your startup file takes a long time to process (more than 3 seconds), you will see the following warning:

If, after 10 seconds, the shell environment has still not been resolved, VS Code will abort the 'resolve' process, launch without your shell's environment settings, and you will see the following error:

Vscode Unity Intellisense Not Working

The easiest way to investigate delays in your startup file is to:

  • Open your shell's startup file (for example, in VS Code by typing ~/.bashrc or ~/.zshrc in quick open).
  • Selectively comment out potentially long running operations.
  • Save and fully restart VS Code until the warning or error disappears.

Vs Code Unity

Technical Support

Vscode Unity Linux

You can ask questions and search for answers on Stack Overflow and enter issues and feature requests directly in our GitHub repository.

If you'd like to contact a professional support engineer, you can open a ticket with the Microsoft assisted support team.