Microsoft Unity



Unity is the ultimate game development platform. Use Unity to build high-quality 3D and 2D games, deploy them across mobile, desktop, VR/AR, consoles or the Web, and connect with loyal and enthusiastic players and customers. The Microsoft Unity Framework helps us to inject external dependencies into software components. To use it in a project we just need to add a reference for the Unity Container DLLs to our project. To download it click on this link. There are the following three types of dependencies. Entire Unity Library as single package. This is a convenience package containing both Unity.Abstractions and Unity.Container assemblies. This package is distributed for these who do now wish to separate declarations and implementation. Set up your development environment and build your first real-time 3D app with Unity.

  1. Does Microsoft Own Unity
  2. Microsoft Unity Container
  3. Microsoft Unity Download

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.

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:

  1. Install the .NET Core SDK, which includes the Runtime and the dotnet command.

  2. [Windows only] Logout or restart Windows to allow changes to %PATH% to take effect.

  3. [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.

  4. 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
Unity

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.

Enabling code completion (For recent versions of Unity)

Microsoft unity container

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:

  1. Stop VS Code or Unity running.
  2. Download and install the targeting pack for your targeted framework version / preferred version from one of the above links.
  3. Start Unity.
  4. 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).

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:

  1. Create a .editorconfig file in your project's root folder (next to Unity's .csproj files).
  2. 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

Does Microsoft Own Unity

I don't have IntelliSense

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

BeforeAfter

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
  • AirSim on Unity allows you to run your simulators in the Unity Engine. This project comes with some sample Unity projects and a wrapper around the AirLib library to run as a native plugin in Unity.
  • Included are two basic Unity Projects, one for a Car simulator and another for a Drone simulator. They are meant to be lightweight, and can be used to verify your setup is correct.
  • Check out the Unity blogpost for overview on the release.

Warning: Experimental Release#

This project is still in early development, expect some rough edges. We are working to fully support the full AirLib API and feature set, but some things may be missing. Click here for the list of currently supported APIs.

Windows#

Building from source#

Install Unity#

  • Download Unity Hub from this page.
  • Install Unity 2019.3.12 using the Unity Hub from here. Detailed instructions here.
  • Note: If you are using Unity for the first time, check out the Getting started guide. The Unity User Manual has additional tips, resources, and FAQs.

Build Airsim#

  • Install Visual Studio 2019. Make sure to select Desktop Development with C++ and Windows 10 SDK 10.0.18362 (should be selected by default) while installing VS 2019.

  • Start x64 Native Tools Command Prompt for VS 2019.

  • Clone the repo: git clone https://github.com/Microsoft/AirSim.git, and go the AirSim directory by cd AirSim.
  • Run build.cmd from the command line.

Build Unity Project#

  • Go inside the AirSimUnity directory: cd Unity.
  • Build the unity project: build.cmd.
  • Additionally, there is a free environment Windridge City which you can download from Unity Asset Store. And, of course, you can always create your own environment.

Linux#

Dependencies#

Download and Install Unity for Linux#

Warning: Unity Editor for Linux is still in Beta. Expect some rough edges.

Install Unity#

  • Download Unity Hub from this page.
  • Install Unity 2019.3.12 using the Unity Hub.
  • Note: If you are using Unity for the first time, check out the Getting started guide. The Unity User Manual has additional tips, resources, and FAQs.

Build Airsim#

Generate AirsimWrapper Shared Library#

This will generate the necessary shared library and copy it to the UnityDemo Plugins folder.

Usage#

  • Start Unity Hub, click on Projects on left pane, and then click on the Add button
  • Select the folder AirSimUnityUnityDemo, and then hit the OK button.
  • Click on the new project which showed up in the Unity Hub menu to open it in Unity.
  • In the bottom pane, click on Projects->Assets->Scenes. Then, Double-click on SimModeSelector. This will load the SimModeSelector scene into the scene hierarchy pane. DO NOT add CarDemo or DroneDemo scene into the scene hierarchy pane.
  • Hit the play button to start the simulation (and hit play again to stop the simulation. .
  • Alternatively, you can change the SimMode in your Settings.json file. (You can read more about Settings.json here)
  • Controlling the car:
    Use WASD or the Arrow keys or the AirSim client.
  • Controlling the drone:
    Keyboard control is not currently available for drone flight.
  • Changing camera views:
    Keys 0, 1, 2, 3 are used to toggle windows of different camera views.
  • Recording simulation data:
    Press Record button(Red button) located at the right bottom corner of the screen, to toggle recording of the simulation data. The recorded data can be found at DocumentsAirSim(Date of recording) on Windows and ~/Documents/AirSim/(Date of recording) on Linux.

Building Custom Environments For AirSim#

To use environments other than UnityDemo, follow the instructions written here

Microsoft

Cross-Compiling to Linux#

Unity Editor supports compiling projects to Linux systems.After following the steps to build AirSim and Unity on Windows, do the following:

Linux Pre-Requisites#

Microsoft unity game engine

Before being able to run Unity Binaries with the Airsim plugin, be sure have airsim and airsim unity built on your linux machine by following the Linux build steps above.

Package UnityDemo Binary On Windows#

Install Necessary Components#

In order to package your project for linux, the Linux Build Support Unity add-on must be installed.* Open Unity Hub, and click the Add component button in the dropdown window under more options to the right of your Unity 2018.2.15f1 tab.* Make sure the Linux Build Support Platform is selectedOnce this component is successfully installed, you are ready to build Unity Projects for Linux!

Microsoft Unity Container

Build the Project#

  • On your Windows machine, build the Unity Demo by navigating to the build settings option in the toolbar File -> Build Settings
  • Make sure the following scenes are set to be built:
    1. SimModeSelector
    2. CarDemo
    3. DroneDemo
  • Set the target operating system to linux, and choose the version appropriate for your system (x86 vs x86_64)
  • Click Build
  • Transport the built project as well as the generated folder '{project_name}_Data' to your linux machine

Copy The AirsimWrapper Library to the Project Plugins folder#

  • On your linux machine, navigate to your AirSim repository, and run the following commands in a terminal window: This will generate the necessary shared library to allow Airsim to communicate with Unity and copy it to the plugins folder of your project binary.

Run the Project Binary#

  • Open a terminal and navigate to your project directory
  • Set your project binary as an executable file:
  • Run the binary file

Using Airsim API#

  • For quickstart with the Python APIs for the car or the drone, simply run the hello_car.py or the hello_drone.py script accordingly.
  • Details of the AirSim C++ and Python APIs are here.

Acknowledgements#

Microsoft Unity Download

  • The drone object was provided by user 31415926 on sketchfab. It is licensed under the CC License.