I can’t deny, the Unity built in editor, MonoDevelop, is a nice IDE. It has all the features I expected, including code completion, error detection and debug integration with Unity. Sadly, it’s not as stable as I expected, having some bugs that make it unusable for me (e.g. it doesn’t handle quotes on my keyboard).

An alternative was to use Visual Studio, which has a nice integration using Visual Studio Tools for Unity. Like MonoDevelop, it’s possible to debug Unity scripts on Visual Studio. The only issue I have is that it doesn’t work with the Express version (or am I mistaken?).

Sublime Text

My next plan was to go with my usual editor, Sublime Text. It’s a text editor really easy to customize, with lots of packages already available for download.

I’ve been using this setup for a while it’s working nicely. The only thing I really miss is debuging, which I’ve been doing with MonoDevelop. the animation below is a example of my workflow:

OmniSharp

The OmniSharp package adds IDE features such as error reporting and IntelliSense code completion. It does the magic using a server which runs on background and parser your files. The downside is that it fails sometimes to find the Unity run time.

The package is available on Package Control and depends on an entry on your project settings to find the solution. I ended up creating a template for this:

Unity Reference Search allows you to search the Unity documentation for the selected text using CTRL+'. It’s also available on Package Control.

Other helpers

A great annoyance for me was remembering the messages that Unity calls on MonoBehaviour. On the first days I used sublime completions file (which the source I can’t remember), but OmniSharp overrides the suggestion list, making the completions inaccessible.

I ended up converting them into snippet files, which are available on my GitHub: JulioC/unity-messages-snippets. I also made a MonoBehaviour snippet, included below. To install these snippets, just save them on your packages folder (press CTRL+SHIFT+P and search for browse packages).

Comments