The end goal here is to have Unity3D and Visual Studio Code installed on a Debian 10 Linux system with Intellisense completions working for Unity code.

You should be able to type the start of a Unity name like GameObject and see the completion:

I mostly followed @nosuchstudio’s guide for Ubuntu 18.04 LTS but added some extra details and confirmed Debian 10 compatability.

There are four things to install and configure:

  1. Unity Hub
  2. Visual Studio Code
  3. .NET Core 3.1
  4. Mono

1. Install Unity Hub

Download the AppImage from here. Move it to a convenient location and set it executable:

mkdir ~/opt/unity
mv Downloads/UnityHub.AppImage ~/opt/unity
chmod +x opt/unity/UnityHub.AppImage

2. Install Visual Studio Code

Download the 64bit deb of Visual Studio Code and install it:

sudo dpkg -i Downloads/code_1.47.0-1594283939_amd64.deb

Make sure that you have the C# extension installed:

Also make sure that under Unity3D’s Edit/Preferences/External Tools menu, you have Visual Studio Code selected (not Open by file extension) and all the checkboxes ticked:

3. Install .NET Core 3.1

Debian 10 can run .NET Core 3.1 (see these notes).

Following the detailed installation steps:

wget -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb

sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-3.1

4. Install Mono

Follow the Debian instructions:

sudo apt install apt-transport-https dirmngr gnupg ca-certificates
sudo apt-key adv --keyserver hkp:// --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb stable-buster main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update
sudo apt install mono-complete

Test the integration and Intellisense

Create a new Unity3D project and add a C# script in your Assets folder:

If you have a script attached to a game object, do NOT click the Edit script menu item as this will load the invidivual file. Instead, open the script via the Assets window and select Open C# Project:

Intellisense won’t work until the project has been compiled. You’ll see lots of mono processes:

Once everything has compiled, test out Intellisense completions:

Also note that the left panel has lots of Unity components, not just the C# file. This indicates that you have opened the C# project, not an individual file.