天天看点

Unity C#开发利器之UnityVS

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

0:Visual Studio and Unity 连接

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

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

Unity C#开发利器之UnityVS

1:调试

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

Unity C#开发利器之UnityVS

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

1-2:调试外部的DLL

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

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

添加UnityVS方案到你的项目:

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

Unity C#开发利器之UnityVS

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

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

Unity C#开发利器之UnityVS

部署资源文件夹中的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 C#开发利器之UnityVS
Unity C#开发利器之UnityVS

导入UnityVS包

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

打开您的项目

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

Unity C#开发利器之UnityVS
Unity C#开发利器之UnityVS

4:从Player角度调试

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

创建您的播放器与调试

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

Unity C#开发利器之UnityVS

配置WebPlayer通道

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

Unity C#开发利器之UnityVS

5:附加Unity Debugger

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

Unity C#开发利器之UnityVS

6:Unity 工程资源管理器

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

Unity C#开发利器之UnityVS
Unity C#开发利器之UnityVS

7:文档访问

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

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

8:脚本向导:

MonoBehavior 脚本内部方法向导

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

快捷键:CTRL + SHIFT + M

Unity C#开发利器之UnityVS

快速定位MonoBehavior成员对象

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

Unity C#开发利器之UnityVS

不同的符号(脚本,函数,变量)您的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 )  => 

       { 

           // ... 

       }; 

    }

}

继续阅读