Unity3D使用VisualStudio作为脚本编辑器以及配合NShader插件编辑Shader的方法

Unity3D自带了Mono Develop作为脚本编辑、Shader、调试用的IDE,虽然Mono Develop的功能也算强大,但是对于习惯了VS的开发人员来说,换个新IDE就得适应一套新的…额,感觉!

其实看看Unity项目文件夹内的内容可以发现Unity实际上是生成了VS用的项目文件的,sln、csproj之类的,也就是说是可以比较容易地换用VS作为项目脚本编辑IDE的,简单设置一下就可以了,Edit->Preferences…中修改External Script Editor选项,选中VS的devenv,便会被自动识别出来,如下图所示:

qq20121129103340

这样,点击脚本等的时候Unity就会弹出VS并自动打开关联的项目和要编辑的文件给你了。后来在使用时发现一个小问题,就是我的VS是带VA(大番茄VS程序员的最爱!)的,但如果用Unity启动的话VA会被自动禁用…怀疑可能是VA的防盗版机制造成的,为了避免VA被禁用,可以通过手动启动VS,自己打开Unity项目的方式,如果Unity中改变了项目结构,可以通过Assest下的Sync MonoDevelop Project重新同步项目文件,然后VS会自动触发项目重新加载提示,这样就没问题了,也还算方便…

接下来的问题就是shader文件,VS打开Unity的shaderlab文件显然就是没有高亮也没有提示,一码黑,看着很不舒服,可是又懒得来回切换IDE,怎么办呢?看到Unity论坛上有人提到可以用VS的NShader插件暂时弥补一下,这个插件之前我也用过,学习HLSL GLSL的时候,虽然没有智能感知吧,但有个语法高亮也算不错。而对于Unity来说,shader的语法是类似NVidia的CG的,于是关联上.shader文件让NSahder高亮就可以了,操作如下(译自:http://forum.unity3d.com/threads/108995-Tutorial-How-to-use-NShader-with-Unity-shaders):

NShader 1.3和VS2012之前:
第一步:
下载安装NShader
http://nshader.codeplex.com/

第二步:
到这个文件夹:
<VsInstallRootFolder>\Common7\IDE\Extensions\Alexa ndre Mutel\NShader\version\

第三步:
用记事本打开”NShader.pkgdef”文件

第四步:

将如下内容:

  1. [$RootKey$\Languages\File Extensions\.shader]
  2. @=”{479b8c71-c9de-3669-869d-ae1d91602d7c}”

加到

  1. “CodeBase”=”$PackageFolder$\NShader.dll” 之后

对于NShader 1.3和VS2012:

1.完全关闭VS!

2.修改这个位置的NShader.pkgdef文件:YOUR_DRIVE:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\a_cryptic_subfolder,这里最后的文件夹是个随机生成的名字,比如我的是:D:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\o3ap33yf.qrl这样,找一下就行了。

3.将下面段加入配置文件中:

[$RootKey$\Languages\File Extensions\.shader]
@=”{4c554917-0eb7-3742-9f6b-f2f529fc6729}”

最后为了确保修改生效,需要删除如下两个注册表中的节点(注意不要删错!):

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\ 11.0\FontAndColors\Cache

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\ 11.0_Config

最后重新启动VS就可以了!

最后的最后,还有一点小小的遗憾,就是调试问题,MonoDevelop直接Attach到Unity后就可以很方便的调试脚本执行逻辑,VS的话发现有一个插件:http://unityvs.com/看样子是可以做到让VS调试脚本的,但是是收费的,于是…就先这样吧!

博主友情提示:

如在您的评论中需要提及如QQ号、微信号、电子邮件地址或其他隐私敏感信息,欢迎通过>>博主专用加密工具v2<<加密后发布,原文只有博主可以看到。