关于UnityVS的特色,我不做过多阐述,一句话Microsoft Visual Studio C#辅助开发插件。


0:Visual Studio and Unity 连接

UnityVS显示它是连接到一个Unity实例,UnityVS通过UDP连接,如果你的防火墙会询问他们,授权他们。

如果UnityVS未能连接到一个Unity实例,其状态图标将显示为灰色。点击它,选择一个Unity的实例并连接。

unity 把vs切换到rider unity设置vs_Visual

1:调试

在VS中,按下F5开始通过连接Unity进行Debug调试。在此可以调试编辑器中的脚本。或者在Unity中运行游戏和调试游戏脚本。


unity 把vs切换到rider unity设置vs_解决方案_02

目前,只支持在编辑器中调试,官方表示以后会支持外部调试。

 

1-2:调试外部的DLL

很多人都用外部DLL文件编写可重用的模块组件,并将它们部署在他们的Unity项目。使用UnityVS,它也有可对其进行调试。

请注意,目前只支持UnityVS调试托管DLL。本机C + + DLL中尚不支持!!!!!

 

添加UnityVS方案到你的项目:

在Visual Studio中,你可以添加现有项目的UnityVS解决方案。从UnityVS1.2,项目拥有的引用UnityVS将被保持,甚至把UnityVS作为再生项目文件。


unity 把vs切换到rider unity设置vs_unity 把vs切换到rider_03

2:引用正确合适的Unity框架配置

 

在Visual Studio中,你可以改变你的项目类库的Unity配置文件,因此你不要调用一些以前NET 3.5中存在的风险的方法。那样不支持在Unity中使用Mono的版本。针对项目应该使用一个API编译类库版本。


unity 把vs切换到rider unity设置vs_System_04

部署资源文件夹中的DLL和PDB

我们建议您修改您的DLL项目中添加一个MSBuild的后期Build任务的DLL复制到Unity文件夹中。为了能够调试DLL,调试还需要调试符号,映射源文件代码位置。当您使用Visual Studio创建一个DLL,输出的调试符号的PDB文件。为了方便UnityVS能够调试您的DLL,你必须复制的PDB文件。该unityvs包将使用DLL和PDB的内容创建一个dll.mdb文件,通过Unity的脚本引擎调试。

为了确保调试符号总是同步的DLL文件,我们建议您删除该DLL,PDB和DLL.MDB的文件,然后再复制新文件超过。


调试你的代码

现在,您可以把您的DLL代码中的断点在UnityVS解决方案,并启动调试。

3:远程调试

远程调试在UnityVS 1.0被认为是一个预览功能,因为它的功能有Bug。

 

配置你的虚拟机的共享文件夹

您只需共享您的Unity工程文件夹。


unity 把vs切换到rider unity设置vs_解决方案_05

unity 把vs切换到rider unity设置vs_Visual_06

导入UnityVS包

你会发现它在你的ProgramFiles\UnityVS, or Program Files (x86)\UnityVS on 64 bits机,你需要将它复制到OSX上,并将其导入Unity。


打开您的项目

在你的虚拟机,在Visual Studio打开由UnityVS产生解决方案。其名称开始UnityVS.YourProjectName。UnityVS不会被连接到远程的Unity。点击状态栏打开选择的Unity图标,并选择你的项目。


unity 把vs切换到rider unity设置vs_解决方案_07

unity 把vs切换到rider unity设置vs_Visual_08

4:从Player角度调试

从与UnityVS 1.2开始,你现在可以把VisualStudio调试器附加到Unity的Player,只要他们建立脚本调试标志,它们应该是在同一网络上运行的UnityVS实例。


创建您的播放器与调试

在Unity 的Build Settings面板,确保Development Build和Script debugging复选框被选中。


unity 把vs切换到rider unity设置vs_解决方案_09

配置WebPlayer通道

如果你想调试Web播放器,确保右键点击播放器,并配置Development通道。


unity 把vs切换到rider unity设置vs_Visual_10

5:附加Unity Debugger

使用附加Unity调试进入Visual Studio “调试”菜单中的Unity选择对话框,然后单击”OK“开始调试。


unity 把vs切换到rider unity设置vs_解决方案_11

6:Unity 工程资源管理器

您可以打开Visual Studio内部的Unity的工程资源管理器“,你的项目必须在Unity同一层次结构上。


unity 把vs切换到rider unity设置vs_解决方案_12

unity 把vs切换到rider unity设置vs_unity 把vs切换到rider_13


7:文档访问

要访问Unity文档,移动光标或突出一个Unity的方法或成员,并按下帮助快捷。UnityVS将尝试加载的文件在本地或将回退到在线文档。

快捷键:CTRL + ALT + M,Ctrl + H


8:脚本向导:


MonoBehavior 脚本内部方法向导

学习时特别有用Unity的API,MonoBehavior向导让您直观地选择Unity的函数来实现在你的MonoBehavior。

快捷键:CTRL + SHIFT + M


unity 把vs切换到rider unity设置vs_解决方案_14

快速定位MonoBehavior成员对象

对于那些谁已经知道他们需要实现哪些功能,快速的MonoBehavior向导可以让你迅速实现一个MonoBehavior函数,尤其是当你使用驼峰命名规则 。例如,你可以输入OMD,该向导将匹配OnMouseDown实现OnMouseDrag的。


unity 把vs切换到rider unity设置vs_unity 把vs切换到rider_15



不同的符号(脚本,函数,变量)您的UnityVS项目之间进行导航的推荐方法是使用集成的Visual Studio的导航对话框。

 

9:编码模版

您可以与UnityVS如何生成的项目文件,通过使用统一风格的回调ProjectFileGeneration的。

using System;
using System.IO;
using System.Linq;
using System.Text;
using System.Xml.Linq;
 
using UnityEngine;
using UnityEditor;
 
using SyntaxTree.VisualStudio.Unity.Bridge;
 
[InitializeOnLoad]
public class ProjectFileHook
{
   // necessary for XLinq to save the xml project file in utf8
   class Utf8StringWriter : StringWriter
    {
       public override Encoding Encoding
       {
           get { return Encoding.UTF8; }
       }
    }
 
   static ProjectFileHook()
    {
       ProjectFilesGenerator.ProjectFileGeneration += (string name, stringcontent) =>
       {
           var document = XDocument.Parse(content);
           document.Root.Add(new XComment("FIX ME"));
 
           var str = new Utf8StringWriter();
           document.Save(str);
 
           return str.ToString();
       };
    }
}
 
unityvs注册自己的日志回调能够流Unity控制台到VisualStudio。如果你有编辑脚本以前注册自己的回调,我们都可以如果你插入自己的日志回调一起工作using  System ;
 
using UnityEngine ; 
using UnityEditor ;
 
using SyntaxTree.VisualStudio.Unity.Bridge ;
 
[InitializeOnLoad] 
public class  LogCallbackHook 
{ 
   static  LogCallbackHook () 
    {
       VisualStudioIntegration . LogCallback +=  ( string  condition , string  trace ,  LogType type )  => 
       { 
           // ... 
       }; 
    }
}