Unity3D的断点调试功能
这篇文章介绍的调试工具是Unity自带的MonoDevelop, 假设要用VS,须要下载unityvs http://unityvs.com/.
http://liweizhaolili.blog.163.com/blog/static/162307442013214485190/
断点调试功能可谓是程序猿必备的功能了。Unity3D支持编写js和c#脚本。但非常多人可能不知道,事实上Unity3D也能对程序进行断点调试的。只是这个断点调试功能仅仅限于使用Unity3D自带的MonoDevelop编辑器。而用Visual Studio是不行的。听说有个叫做UnityVS的东西能够使用VS对Unity进行断点Debug。只是阿赵我本人没试过。
![Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵](http://img2.ph.126.net/QLsTo9yZKgQwAEGhpmA7Bg==/6597811937006139419.jpg)
![Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵](http://img2.ph.126.net/TIX7khocdpm_lY_OoAK2Mg==/6598089013936114973.jpg)
选择好之后,能够在项目面板右键选择Sync MonoDevelop Project来打开MonoDevelop。
![Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵](http://img2.ph.126.net/yTFWdLr-pYPzv7WyzlYvFA==/6597761359471254974.jpg)
按第二个button时,会把sum清零。
![Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵](http://img2.ph.126.net/1iqf_Zgj9MXty5IysDUqtg==/6598286926029120236.jpg)
回到MonoDevelop,按F5或者点击Debugbutton。
![Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵](http://img0.ph.126.net/_lfTKTQSkp2a__axJjys6g==/6597641512703825538.jpg)
另外一种方法。无需关掉Unity,在MonoDevelop的Run菜单下选择Attach to Process
![Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵](http://img0.ph.126.net/y_oZZqBg4Jn0DBoddB-gqQ==/6597795444331724706.jpg)
然后选择Unity的进程,点击Attachbutton。
![Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵](http://img0.ph.126.net/nvz4ZQnuiw112IDapz0diQ==/6598149487075643043.jpg)
![Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵](http://img1.ph.126.net/IiPSB_-WQkAeN-SlSLzhlA==/6597773454099161290.jpg)
debug模式脚本以下的位置会多出两个窗体。
![Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵](http://img1.ph.126.net/u5KcY_RKKc4oAelx1Mfc5A==/6597726175099164046.jpg)
![Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵](http://img1.ph.126.net/52YSGFSgCiQ5NjDkP7NFZQ==/6597775653122416786.jpg)
![Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵](http://img2.ph.126.net/dCOhVu2D1URJThJUgi6FnQ==/6597325952866154378.jpg)
这时候断点起作用了,程序会暂停,MonoDevelop跳到断点的行。
![Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵](http://img0.ph.126.net/E1DVw-2DXjwqzyOlcR5dlQ==/6597587636634065496.jpg)
![Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵](http://img1.ph.126.net/XKmaDtwHbIyO6sCsejAOww==/6597464491331334478.jpg)
![Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵](http://img0.ph.126.net/HNe_4Vw8Wx31Q_5sE5odlA==/6598108805145421371.jpg)
![Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵](http://img1.ph.126.net/1nkB4x2socGww7w4OH5URw==/6597623920517783395.jpg)
假如你不断开的话。Unity会一直处于非常卡的状态。
![Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵](http://img1.ph.126.net/OA11XeUr5EMRF5baNObwgw==/6597899897936360026.jpg)
![Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵](http://img1.ph.126.net/TZ66Tbi7gS8ABp2rDowKGQ==/6597829529192184802.jpg)
![Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵](http://img2.ph.126.net/Fwf9jMzZTRBk-g8rwU6Y_Q==/6597900997447987769.jpg)
![Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵](http://img0.ph.126.net/k8H-UGQ9GpE0SnsfG2dZyw==/6598094511494256756.jpg)
这两种方法连接Unity,我建议还是使用另外一种附加进程的方式吧。毕竟你不可能每次调试都要关掉一次Unity然后再从MonoDevelop打开一次Unity。
所以,编写脚本的时候,把连接Detach掉,等须要调试的时候。再把进程Attach上去,进行调试即可了。