Debugging in Unity (C#) + Visual Studio Code Work on OS X? - macos

I really like the idea of working with Visual Studio, C# and Unity on OS X.
Has anyone made debugging with C# in Unity work with Visual Studio Code on OS X?

Yes it works absolutely fine. Unity is C#, JavaScript or Boo. So, you don't need .NET for it. Unity uses Mono runtime. So, an existing VS project can be opened in Unity for Mac OS X.
EDIT
Here is a link that helps you to attach a debugger to the VS endpoint.
http://www.yunspace.com/2015/01/19/integrating-visualstudio-with-unity3d-on-mac-using-vstools/
You can try VS Tools for Unity too.
http://unityvs.com
UPDATE
There is this awesome Unity Plugin by dotBunny that solves the problem and integrates Code with Unity tools.

Hi the solution is https://github.com/dotBunny/VSCode This plugin works on both MacOS and Windows and gives you the following capabilities:
•An option to enable VS Code integration (Editor –> Assets –> Enable Integration), this updates your solution files and (more importantly) keeps them in sync. This also sets the preferred external tool editor in the Unity preferences.
*Note, the old “Sync MonoDevelop” option is now gone in the Unity editor from V5.2
•It writes out the necessary (and sometimes hard to find) VS Code configuration files, including the ability to hide “non-code” files in the editor (hides things like .sln, .csproj and the ever present unity .meta files)
There are a couple of other settings in there to help speed up the integration.
•Automatically launches VS Code direct to your project folder, EVERY-TIME. no longer do you have to worry about keeping that window open, or switching around if you work on multiple projects
One thing to be aware of, once you enable the VSCode integration, changing your preferred code editor in the External Tools preferences will have no effect as the plugin takes over opening code files. If you want to use another editor, you’ll have to disable the integration first.
These are just the main highlights as there are more features in there as well.
Currently you need to download the plugin files from GitHub

An existing Visual Studio solution can be build and debugged with Visual Studio Code on the Mac with Mono. You have to use the launch.json and tasks.json files.
I described it on my blog: Compile and Debug

To build Unity in Visual Studio Code, you can hook up Mono xbuild compiler as a task runner, so you don't even have to leave IDE to have errors and warnings.
See https://twitter.com/_eppz/status/846859856787259392 for more.

It's a little unstable. But it's possible from recent VSC version.
1) Install this VSC Unity plugin-in.
https://github.com/dotBunny/VSCode/
2) Follow these commands. (Step 1, 2 and 3)
https://code.visualstudio.com/Docs/runtimes/unity
3) After you complete the settings, launch the VSC using Unity menu.
Assets/Open C# Project in Code
4) Play the Unity project.
You can see the debug port number on the unity console.
And the project's launch.json file will be renewed automatically.
To open launch.json, click option icons.
the file exists in this folder.
.vscode/launch.json
sample.
{
"version":"0.1.0",
"configurations":[
{
"name":"Unity",
"type":"mono",
"address":"localhost",
"port":56621
}
]
}
5) Start debug in VSC debug tab.
That's it. Hope this help.

Update, 2016 - the petition was popular enough that some VS Code extensions have been written for it: https://marketplace.visualstudio.com/search?term=unity&target=VSCode&sortBy=Relevance
Petition for it on the Visual Studio UserVoice page: http://visualstudio.uservoice.com/forums/293070-visual-studio-code/suggestions/7752702-unity-integration

[Feb 2017] It is now possible to do this without the dotBunny plugin.
i.e. Support is built into Unity natively.
Just to repeat, you don't need to fiddle with Unity, just VSCode.
Instructions here
Instructions are incomplete though, and I didn't take screenshots (please do!), but basically what I did was:
(...and please improve these instructions as you go, I'm working from memory...)
I deleted/renamed my .vscode/Launch.json file, as per the link.
Double-click on some file to bring up the project in VSCode (maybe first make sure that in Unity's settings you have selected VSCode as your default code editor)
clicking the bug icon then the cogwheel, as per the link.
I had to install that vscode-unity-debug plugin in VSCode, just filtering the search with 'unity' found it.
I then had to press the green 'play' triangle.
I set a breakpoint in my code.
Now over to unity and press play, and the breakpoint gets hit.

The Unity Debugger for Visual Studio Code is working, but doesn't work well enough when doing any kind of serious work for now. I really hope they will improve it in the future as I prefer VS Code over VS.
Current problems I encountered
-Sometimes I cannot step in a function, the debugger will hang until you detach
-no local variable, you have to watch everything
-some more complex variable have no support, so you can't see what is inside
-A bit overall unstable with unexpected behaviours.
What I love about it,
Attaching & Detaching is a breeze. Just press a button, allowing to attach and detach quickly as needed. e.g. At the beginning of the program I work on, there will be an bunch of exception. I can detach and attach quickly to skip the exceptions.
The problems with it are too constraining as it currently stands, I had to go back to the classic Visual Studio.

Related

IntelliSense doesn't show Unity hints

So I'm new to Unity and I'm watching a few tutorials to learn the basics. Something that got my attention is that in the videos they have an autocomplete and while I've got it too, it gives too few options. For instance it doesn't show the Debug or any of its properties. It runs fine but it's really annoying.
I don't know if it's related but it also lacks some coloration. Like in the videos Debug is colored orange but mine is not colored differently from the rest.
Not sure about your VS version and Unity version, but please update them if possible. For example, you have VS2017 15.8 and Unity 2018.1, then please update them to VS2017 15.9.17 and Unity2018.3.8 or higher.
And it seems to be one similar issue like this report in DC. You can find details from Sebastien Lebreton for trouble-shooting the issue there.
Make sure:
Visual Studio is set as your external script editor in Unity (Edit/Preferences/External Tools)
Visual Studio plugin is installed in Unity (Help/About must display a message like Microsoft Visual Studio Tools for Unity is enabled at the bottom).
Then check that the extension is properly installed in Visual Studio (Help/About).
You can try:
backup your project
quit both VS and Unity
remove all generated sln/csproj
remove the hidden .vs folder in VS Solution folder
remove the Library folder
re-open the project with Unity
In Unity, use Assets/Open C# Project to open that in Visual Studio
In addition to Lance Li-MSFT's answer I happened to observe this: When you create a new script (for example with "Add Component" -> "New Script") and then try to open it directly, this can happen. So after you created your script, give unity a few seconds to compile and then open it. For scripts that are opened to early, I did not manage to fix them. They just won't show IntelliSens hints, otherwise they work perfectly normal.
Just spent some time solving this
(VS 2022 community, Unity 2020.3.30f).
It happens that by defaut in Unity
Edit \ Preferences \ External tools
"External script editor" is set to "Open file by extension".
And script does open in VS 2022, and script compiles in Unity after editing, but it does not create .vs folder with all project related stuff.
So intellisence just did not kick in to Unity.
But after I set "External script editor" to Visual Studio, it started to work
(hints and coloration).

Typescript VS2017 stops at first line, error: Debugger agent is not enabled

When I start a newly created Typescript Project in Visual Studio 2017 theres some strange behaviour going on.
-The debugger breaks on the very first line
-The output shows:
code:-32000
message:Debugger agent is not enabled
-Many scripts in solution explorer (see screenshot)
-Node output:
Debugger listening on wb://127.0.0.1:5858/03dde2a0-7ae8-44fc-8b29-53b99c072de7
For help see https://nodejs.org/en/docs/inspector
Debugger attached.
Screenshot:
Edit: Seems to be a problem with the new node version. If I switch back to 5.4.1.0 (included in VS2017) everything works fine. I read that there has been a change in debugger protocol maybe it has something to do with that... gotta wait for an update.
To show the Console, we can use: Debug -> Windows -> JavaScript Console.
Michael Braude showed two suggestions for the similar issue:
1.Use JavaScript Console of Visual Studio. Frankly, this way is OK for me when I am developing on PC with two displays (I runs emulator on
one screen and debug with Visual Studio on another), but a bit
uncomfortable when I am developing on Notebook with one screen.
2.Run a solution without debugging (CTRL+F5), in this case VS's debugger isn't attached to browser. This looks as simple solution, but
you need to be aware that in this case breakpoints don't stop run-time
and you have to use debugger; keyword.
For detailed information:
Visual Studio Tools for Apache Cordova stops work correct after update
I got it working again by using the included node version of VS2017. There seems to be a problem with the new version <8.
You can choose which version to use by putting the path to the exe folder on top of the list here: Tools > Options > Projects and Solutions > Web Package Management > External Web Tools

Visual Studio 2017 Xamarin UWP break, unable to load "sqlite3"

When I launch UWP project, it crashes and I'm getting errors like these.
And this error occurs mostly when its on debugging mode.
Soo.. first idea for fixing this was upgrading/downgrading nuggets, but that didn't help me, also I have these nuggets included for UWP:
Microsoft.NETCore.UniversalWindowsPlatform
SQLite.Net-PCL
System.Data.SQLite
Xamarin.Forms
XLabs.Forms
etc other(that dosent matter on this exception)
I also looked other posts for solving this, like adding SQLite extension, but I didnt find the extension from Universal Windows->Extensions.
Im pretty stuck with this problem, I think its probably a problem with nuggets
You were fairly close. Go to Tools > Extensions and Updates. Click the Online tab in the left hand menu.
Search for SQLite and download SQLite for Universal Windows Platform.
Now go back to the Extensions window, as you showed above, and tick the SQLite for Universal Windows Platform. Ensure you keep the Visual C++ 2015 Runtime ticked, you need this as well.

Visual Studio extensions keep disappearing

I am by no means a visual studio expert. However I have done some searching on this topic and cannot find anything to help me.
I'm working on a VS 2010 web application. We are using TFS 2012 for source control. I wouldn't be suprised if this is causing my issue so I make a special mention of it.
The issue I'm having is every morning after I open the project I have to go into Tools / Extension Manager and search online and add JScript Editor Extensions. When I open the project the next day it's gone and I have to add it again. (I think sometimes it does this right in the middle of coding - my Javascript window changes size and loses formatting)
An extension that stays every day regardless is NuGet package manager, so it's not removing every extension.
I suspect that when I get latest from TFS it's overwriting the solution or project which contains the reference to the extension but I haven't been able to verify this.
Can anyone tell me why extensions would be removed? Are these a local user setting or are they contained in the project file?
Taking a step back, my real problem is complete lack of integration between C# and Javascript in the web programming world. I need all the help I can get on the Javascript side.
There were a number of issues with buggy extension addins. To clarify are you using visual studio 2010 with tfs 2012 plugin?
The recommended process for identifying the buggy extension is to disable the extensions one at a time until the buggy one is isolated.
the source control shell for tfs2012 can be installed as a separate shell if needed.
I suspect the script editor extensions however.

Windows 7 Gadget debugging with Visual Studio 2010

i try to debug a windows gadget. Just-In-Time debugging fires up and i can see an VS2010IDE attached to the sidebar process. But there is no source code to debug! Only a blank file with the yellow debug pointer. What is my problem?
Configuration of my system is based on this article:
Gadgets for Windows Sidebar Debugging (http://msdn.microsoft.com/en-us/library/bb456467(VS.85).aspx)
We have posted on the MSDN forum about this.
I think script debugging is broken in studio 2010 beta2.
I cannot get script debugging to work on my ASP.NET MVC project either.
We get a blank page, and the IDE cannot find the code to debug.
Trying to open files in the Internet Explorer tree in solution exlorer results in blank files being opened.
I think it's a bug - and afterall it is a beta.
I also had this problem, and for a while I was thinking it might have to do with my machine being 64-bit, or a permissions issue, but I have no way of confirming it.
However, I was able to solve it by using the template on this Code Project site:
http://www.codeproject.com/KB/gadgets/HeterodoxGadgetTemplate.aspx
The nice thing about the template is that it's setup as a Windows application. When you run the app it handles the local deployment of your gadget and starts the sidebar service (sidebar.exe). I believe this probably gets around a number of permissions issues.
After setting up a new project using this template, I was able to successfully debug the JavaScript using the "debugger" methods explained everywhere else (for example: http://msdn.microsoft.com/en-us/library/bb456467%28v=vs.85%29.aspx).

Resources