unity3d

Unity3D使用MonoDevelop进行开发时的项目编译问题

自从VS2015出现以后,Unity3D的新版本也直接内置了对其支持,写代码和调试都非常方便,但是在没有VS2015的开发环境下,比如没装或者是装不了(Mac OSX)下,用Unity自带的MonoDevelop也还算方便。
这次记录的是一个之前太注意的小问题,C#脚本中写了个带默认参数的函数,结果发现Unity编辑器可以编译运行,但在MonoDevelop调试时却提示编译错误,检查了下,发现原来是默认用MonoDevelop调试时,这个IDE也会对打开的项目进行编译,但其编译的方式和Unity本身不太一样,对这些后加入支持的代码写法并不支持,解决方法也很简单:Tools->Options->Unity->Debugger->Build project in MonoDevelop,这个选项勾掉就可以了。

关于Unity3D内置Blinn Phong光照模型计算在移动设备上的曝光问题

Unity3D的surface shader用起来很是方便,比直接的cg写起来省事的多,而且有很多现成的东西可以include,比如光照部分就是,常用的lambert, blinn phong都提供了现成的实现,但是最近在做specular时发现,内置(https://unity3d.com/unity/download/archive下载全部内置shader source或{unity install path}/Data/CGIncludes/Lighting.cginc Windows, /Applications/Unity/Unity.app/Contents/CGIncludes/Lighting.cginc Mac)的LightingBlinnPhong在移动设备上使用时会出现高光曝掉的问题!

简单看lighting.cginc中的相关函数:

Continue reading…

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会被自动禁用… Continue reading…

Unity3D项目使用SVN进行版本控制时的注意事项

Unity3D自有一个叫Asset Server的东西可以用来实现项目版本控制,但是,由于习惯,我更倾向于用纯代码项目常用的工具,比如SVN来进行版本控制,就算Unity3D没有像VS Eclipse等IDE那样对SVN提供整合支持,配合TortoiseSVN也一样可以方便的做到SVN项目版本控制。

一开始,我直接讲整个Unity3D的项目文件夹都Import进了svn,后来发现,稍有改动就会有很多类似缓存性质的文件发生变化,需要commit上传,这时才想到是不是并不需要上传所有文件,于是在Unity官方文档中发现了这篇:http://docs.unity3d.com/Documentation/Manual/ExternalVersionControlSystemSupport.html,写的不少,但关键就是以下这几点:

1.这是Pro Only的feature,应该是指生成asset的meta。

2.在Edit->Project Settings->Editor的 Version Control里面选择Meta files。

3.完全关闭unity编辑器,并在服务器端(如果曾经误传的话)和客户端都删除Library文件夹,这是一个本地的缓存目录,不需要版本控制。为了方便保险,最好直接Ignore掉!

4.按住左Alt或mac的option重新在编辑器中打开项目。

5.Commit到此为止的所有改动。