UnityVS这个插件就不用说了吧~相信做Unity3D开发的都应该知道,Unity3D的VS调试插件,支持VS2012,不习惯用Unity自带的编辑器调试的可以试试这个。
1. 备份Rhino.Licensing.dll and SyntaxTree.VisualStudio.Unity.dll from 在VisualStudio 的扩展目录(c:Program Files (x86)Microsoft Visual Studio 11.0Common7IDEExtensionsSyntaxTreeUnityVS)
2. Copy the existing ones in the same directory and overwrite. (may need administrator permissions)
3. Start VisualStudio 2012
4. Open Unity project
Visual Studio and Unity连接
UnityVS显示它是连接到一个Unity实例,UnityVS通过UDP连接,如果你的防火墙会询问他们,授权他们。
如果UnityVS未能连接到一个Unity实例,其状态图标将显示为灰色。点击它,选择一个Unity的实例并连接。
1:调试
在VS中,按下F5开始通过连接Unity进行Debug调试。在此可以调试编辑器中的脚本。或者在Unity中运行游戏和调试游戏脚本。
目前,只支持在编辑器中调试,官方表示以后会支持外部调试。
1-2:调试外部的DLL
很多人都用外部DLL文件编写可重用的模块组件,并将它们部署在他们的Unity项目。使用UnityVS,它也有可对其进行调试。
请注意,目前只支持UnityVS调试托管DLL。本机C + + DLL中尚不支持!!!!!
添加UnityVS方案到你的项目:
在Visual Studio中,你可以添加现有项目的UnityVS解决方案。从UnityVS1.2,项目拥有的引用UnityVS将被保持,甚至把UnityVS作为再生项目文件。
2:引用正确合适的Unity框架配置
在Visual Studio中,你可以改变你的项目类库的Unity配置文件,因此你不要调用一些以前NET 3.5中存在的风险的方法。那样不支持在Unity中使用Mono的版本。针对项目应该使用一个API编译类库版本。
部署资源文件夹中的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工程文件夹。
导入UnityVS包
你会发现它在你的ProgramFilesUnityVS, or Program Files (x86)UnityVS on 64 bits机,你需要将它复制到OSX上,并将其导入Unity。
打开您的项目
在你的虚拟机,在Visual Studio打开由UnityVS产生解决方案。其名称开始UnityVS.YourProjectName。UnityVS不会被连接到远程的Unity。点击状态栏打开选择的Unity图标,并选择你的项目。
4:从Player角度调试
从与UnityVS 1.2开始,你现在可以把VisualStudio调试器附加到Unity的Player,只要他们建立脚本调试标志,它们应该是在同一网络上运行的UnityVS实例。
创建您的播放器与调试
在Unity 的Build Settings面板,确保Development Build和Script debugging复选框被选中。
配置WebPlayer通道
如果你想调试Web播放器,确保右键点击播放器,并配置Development通道。
5:附加Unity Debugger
使用附加Unity调试进入Visual Studio “调试”菜单中的Unity选择对话框,然后单击”OK“开始调试。
6:Unity 工程资源管理器
您可以打开Visual Studio内部的Unity的工程资源管理器“,你的项目必须在Unity同一层次结构上。
7:文档访问
要访问Unity文档,移动光标或突出一个Unity的方法或成员,并按下帮助快捷。UnityVS将尝试加载的文件在本地或将回退到在线文档。
快捷键:CTRL + ALT + M,Ctrl + H
8:脚本向导:
MonoBehavior脚本内部方法向导
学习时特别有用Unity的API,MonoBehavior向导让您直观地选择Unity的函数来实现在你的MonoBehavior。
快捷键:CTRL + SHIFT + M
快速定位MonoBehavior成员对象
对于那些谁已经知道他们需要实现哪些功能,快速的MonoBehavior向导可以让你迅速实现一个MonoBehavior函数,尤其是当你使用驼峰命名规则 。例如,你可以输入OMD,该向导将匹配OnMouseDown实现OnMouseDrag的。
不同的符号(脚本,函数,变量)您的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 ) =>
{
// ...
};
}
}