Unity in Linux just plain sucks

I owe this thread an apology. This shouldn’t be this hard … but I also posted this out of frustration.

Keys to success here … use native packages directly from their respective sources. Don’t waste your time with snaps or flatpaks. Don’t waste your time shopping in your distro’s store.

I got this setup working well eventually.

  • Ubuntu 20.04
  • Unity Hub directly from Unity
  • Native apt repo package of .Net SDK 5 DIRECTLY FROM MICROSOFT
  • Native installation of mono-devel sourced from mono-project.com
  • Native .deb package of VS Code also from Microsoft

Lesson learned. DO NOT try to source any of these parts through your Linux distro’s “Software Center” or “App Store.” Just get them directly from their respective sources and things will most likely “just work.”

OP Below *********************************************************************

Seriously? This is the best you can do?

So the editor runs. That’s fine. But debugging is wonky (if it works at all). Documentation of what you actually need to do is non-existent. Everything is defaulted to .Net, which is fine if the editor-to-IDE pipeline was complete (which it isn’t). You can’t seem to get debugging and intellisense to work unless you have OmniSharp working in VS Code and OmniSharp doesn’t seem to work well with the current versions of .Net for Linux.

This just seems like a finger-pointing case where there are too many moving parts. Unity should just make an end-to-end pipeline from Unity Hub to Editor to IDE/debugger based on VS Code. These things all work fine on Mac OS. Just invest the effort.

Has anyone had success getting this working? What type of voodoo magic did you need to do? I’ve tried using .Net 5 for Linux as well as .Net 3.1. The problem always seems to be OmniSharp.

Why is the pipeline so clunky?

Sounds more like a code IDE problem. You could try jetbrains rider, that always worked without noticeable problems for me.

1 Like

Thanks @Flavelius … I may give that shot. I’ve been trying to “follow the directions” like a good boy … but it’s super bad. Is Rider free? Not that I’m opposed to paying for it if it works.

How is it for debugging?

Rider just worked. Out of the box. No headache whatsoever. Thanks for the recommendation.

You can resolve your problem if you install mono on your distro and set “Use Global Mono” to “always” on your VS Code.

1 Like

@Isabit-Studio_Linuxydable Thank you for the suggestion. I was actually able to get all of this working. The solution included using the the step you suggested.

It seems the problem was a bunch of things that didn’t like the versions of other things (like OmniSharp not liking the version of Mono).

It’s all working well now, but I see 2 problems with the approach, the first problem is the reliance on OmniSharp. I don’t know if JetBrains Rider has a similar dependency, but if it does, it’s implemented better.

The 2nd problem is the lack of documentation and recommendations for best practices.

Even down to what versions/sources of the .Net SDK.

At any rate … all is well now.

Thanks for the suggestions!

1 Like