Unity3D的断点调试功能
2015-05-03 11:37
260 查看
断点调试功能可谓是程序员必备的功能了。Unity3D支持编写js和c#脚本,但很多人可能不知道,其实Unity3D也能对程序进行断点调试的。
调试有两种方式,一种是使用visual studio配合unityVS来调试,另一种是使用MonoDevelop自带的调试功能。
先说unityVS的。感谢网友的提醒,unityVS已经被微软收购,现在叫visual studio tools for unity,免费下载。
在网上搜索到下载的途径,对应自己使用的vs版本下载:
![](http://img2.ph.126.net/P0uxl8r83K7A_lMPrFa0aw==/3355463197468847069.jpg)
下载后只有一个安装包:
![](http://img2.ph.126.net/xQi_UaFiuPluDS7DmBxKFg==/977562594133591826.jpg)
直接安装:
![](http://img0.ph.126.net/GVKVjtPk8Q5uatD5pFG9Bw==/2437010348378341026.jpg)
安装完成后,新建Unity项目会多出一个可选的导入包,也可以在建立了项目之后再导入这个包:
![](http://img2.ph.126.net/l0dQ5IK0GmpCgdJndoa6QQ==/6619130367956519909.jpg)
![](http://img2.ph.126.net/xB4a3SN2wUEFs0glDTO13A==/3839881632387181088.jpg)
导入:
![](http://img0.ph.126.net/VOxH9Uv3AVDIlXLr_qhFrQ==/1052997887892007935.jpg)
导入后在主菜单会多出一个选项:
![](http://img2.ph.126.net/PE6XIdWEqCWx7m3iTyfJXw==/6619550381398332680.jpg)
选择在vs打开:
![](http://img2.ph.126.net/fCFhNAV-6laMsVVi57WahQ==/3836785407643363877.jpg)
将会打开vs
![](http://img0.ph.126.net/H0zRgEoaKMIAX9dRk2IKjA==/6619101780654200046.jpg)
在vs里面会多出一个按钮,附加进程到unity
![](http://img1.ph.126.net/Ocy2cB3Pli4YAjMqaGMMSg==/3838474257503627812.jpg)
接下来,就可以正常的断点调试了。
![](http://img0.ph.126.net/i0TRnYKBd6gW4qerxyiYuQ==/6619552580421588225.jpg)
第二种是使用MonoDevelop调试:
首先肯定是先要把脚本编辑器指定为MonoDevelop了。
![](http://img2.ph.126.net/QLsTo9yZKgQwAEGhpmA7Bg==/6597811937006139419.jpg)
![](http://img2.ph.126.net/TIX7khocdpm_lY_OoAK2Mg==/6598089013936114973.jpg)
选择好之后,可以在项目面板右键选择Sync MonoDevelop Project来打开MonoDevelop。
![](http://img2.ph.126.net/yTFWdLr-pYPzv7WyzlYvFA==/6597761359471254974.jpg)
因为需要有脚本才能对脚本进行调试,所以我写了个很简单的脚本,里面有两个按钮,按第一个“add”按钮的时候,程序会用一个循环的方式把从0到9的数加起来,然后累加给sum。按第二个按钮时,会把sum清零。
![](http://img2.ph.126.net/1iqf_Zgj9MXty5IysDUqtg==/6598286926029120236.jpg)
写好脚本之后,把脚本随便拖到场景的物体上面,我们准备调试了。在调试之前,我们需要把MonoDevelop和Unity3D进行连接。
具体的连接方法有2种:
第一种,先把当前场景保存一下,然后关掉Unity。回到MonoDevelop,按F5或者点击Debug按钮。
![](http://img0.ph.126.net/_lfTKTQSkp2a__axJjys6g==/6597641512703825538.jpg)
这样,MonoDevelop会打开一个新的Unity3D界面,这时候连接完成了。
第二种方法,无需关掉Unity,在MonoDevelop的Run菜单下选择Attach to Process
![](http://img0.ph.126.net/y_oZZqBg4Jn0DBoddB-gqQ==/6597795444331724706.jpg)
然后选择Unity的进程,点击Attach按钮。
![](http://img0.ph.126.net/nvz4ZQnuiw112IDapz0diQ==/6598149487075643043.jpg)
这时候,MonoDevelop就连接上了Unity了。
当连接好了Unity3D之后,右边的调试按钮就变成可用了,我们把视窗显示选择Debug。
![](http://img1.ph.126.net/IiPSB_-WQkAeN-SlSLzhlA==/6597773454099161290.jpg)
debug模式脚本下面的位置会多出两个窗口。
![](http://img1.ph.126.net/u5KcY_RKKc4oAelx1Mfc5A==/6597726175099164046.jpg)
回到Unity,点击运行按钮,会看到刚才的脚本已经运行了。里面有两个按钮。
![](http://img1.ph.126.net/52YSGFSgCiQ5NjDkP7NFZQ==/6597775653122416786.jpg)
回到MonoDevelop,在脚本里面我们打一个断点(在行号左边点一下)
![](http://img2.ph.126.net/dCOhVu2D1URJThJUgi6FnQ==/6597325952866154378.jpg)
然后回到Unity里面,点击第一个按钮“add”。这时候断点起作用了,程序会暂停,MonoDevelop跳到断点的行。
![](http://img0.ph.126.net/E1DVw-2DXjwqzyOlcR5dlQ==/6597587636634065496.jpg)
留意看下面debug的Locals信息,会看到当前状态下的变量i和sum的值。
![](http://img1.ph.126.net/XKmaDtwHbIyO6sCsejAOww==/6597464491331334478.jpg)
使用调试按钮,让程序单步的运行
![](http://img0.ph.126.net/HNe_4Vw8Wx31Q_5sE5odlA==/6598108805145421371.jpg)
我们看到了当前的变量i和sum的实际变化情况。
![](http://img1.ph.126.net/1nkB4x2socGww7w4OH5URw==/6597623920517783395.jpg)
到这里,断点调试已经完成。
调试完之后,我建议最好把MonoDevelop和Unity3D的连接断开。假如你不断开的话,Unity会一直处于很卡的状态。
断开的方法也是有几种了,首先对应Debug按钮有一个断开的按钮,可以直接点击断开。
![](http://img1.ph.126.net/OA11XeUr5EMRF5baNObwgw==/6597899897936360026.jpg)
或者我们可以把刚才附加的进程Detach掉。
![](http://img1.ph.126.net/TZ66Tbi7gS8ABp2rDowKGQ==/6597829529192184802.jpg)
![](http://img2.ph.126.net/Fwf9jMzZTRBk-g8rwU6Y_Q==/6597900997447987769.jpg)
再或者,我们可以点击这个插头按钮,把Debugger 断开。
调试有两种方式,一种是使用visual studio配合unityVS来调试,另一种是使用MonoDevelop自带的调试功能。
先说unityVS的。感谢网友的提醒,unityVS已经被微软收购,现在叫visual studio tools for unity,免费下载。
在网上搜索到下载的途径,对应自己使用的vs版本下载:
![](http://img2.ph.126.net/P0uxl8r83K7A_lMPrFa0aw==/3355463197468847069.jpg)
下载后只有一个安装包:
![](http://img2.ph.126.net/xQi_UaFiuPluDS7DmBxKFg==/977562594133591826.jpg)
直接安装:
![](http://img0.ph.126.net/GVKVjtPk8Q5uatD5pFG9Bw==/2437010348378341026.jpg)
安装完成后,新建Unity项目会多出一个可选的导入包,也可以在建立了项目之后再导入这个包:
![](http://img2.ph.126.net/l0dQ5IK0GmpCgdJndoa6QQ==/6619130367956519909.jpg)
![](http://img2.ph.126.net/xB4a3SN2wUEFs0glDTO13A==/3839881632387181088.jpg)
导入:
![](http://img0.ph.126.net/VOxH9Uv3AVDIlXLr_qhFrQ==/1052997887892007935.jpg)
导入后在主菜单会多出一个选项:
![](http://img2.ph.126.net/PE6XIdWEqCWx7m3iTyfJXw==/6619550381398332680.jpg)
选择在vs打开:
![](http://img2.ph.126.net/fCFhNAV-6laMsVVi57WahQ==/3836785407643363877.jpg)
将会打开vs
![](http://img0.ph.126.net/H0zRgEoaKMIAX9dRk2IKjA==/6619101780654200046.jpg)
在vs里面会多出一个按钮,附加进程到unity
![](http://img1.ph.126.net/Ocy2cB3Pli4YAjMqaGMMSg==/3838474257503627812.jpg)
接下来,就可以正常的断点调试了。
![](http://img0.ph.126.net/i0TRnYKBd6gW4qerxyiYuQ==/6619552580421588225.jpg)
第二种是使用MonoDevelop调试:
首先肯定是先要把脚本编辑器指定为MonoDevelop了。
![](http://img2.ph.126.net/QLsTo9yZKgQwAEGhpmA7Bg==/6597811937006139419.jpg)
![](http://img2.ph.126.net/TIX7khocdpm_lY_OoAK2Mg==/6598089013936114973.jpg)
选择好之后,可以在项目面板右键选择Sync MonoDevelop Project来打开MonoDevelop。
![](http://img2.ph.126.net/yTFWdLr-pYPzv7WyzlYvFA==/6597761359471254974.jpg)
因为需要有脚本才能对脚本进行调试,所以我写了个很简单的脚本,里面有两个按钮,按第一个“add”按钮的时候,程序会用一个循环的方式把从0到9的数加起来,然后累加给sum。按第二个按钮时,会把sum清零。
![](http://img2.ph.126.net/1iqf_Zgj9MXty5IysDUqtg==/6598286926029120236.jpg)
写好脚本之后,把脚本随便拖到场景的物体上面,我们准备调试了。在调试之前,我们需要把MonoDevelop和Unity3D进行连接。
具体的连接方法有2种:
第一种,先把当前场景保存一下,然后关掉Unity。回到MonoDevelop,按F5或者点击Debug按钮。
![](http://img0.ph.126.net/_lfTKTQSkp2a__axJjys6g==/6597641512703825538.jpg)
这样,MonoDevelop会打开一个新的Unity3D界面,这时候连接完成了。
第二种方法,无需关掉Unity,在MonoDevelop的Run菜单下选择Attach to Process
![](http://img0.ph.126.net/y_oZZqBg4Jn0DBoddB-gqQ==/6597795444331724706.jpg)
然后选择Unity的进程,点击Attach按钮。
![](http://img0.ph.126.net/nvz4ZQnuiw112IDapz0diQ==/6598149487075643043.jpg)
这时候,MonoDevelop就连接上了Unity了。
当连接好了Unity3D之后,右边的调试按钮就变成可用了,我们把视窗显示选择Debug。
![](http://img1.ph.126.net/IiPSB_-WQkAeN-SlSLzhlA==/6597773454099161290.jpg)
debug模式脚本下面的位置会多出两个窗口。
![](http://img1.ph.126.net/u5KcY_RKKc4oAelx1Mfc5A==/6597726175099164046.jpg)
回到Unity,点击运行按钮,会看到刚才的脚本已经运行了。里面有两个按钮。
![](http://img1.ph.126.net/52YSGFSgCiQ5NjDkP7NFZQ==/6597775653122416786.jpg)
回到MonoDevelop,在脚本里面我们打一个断点(在行号左边点一下)
![](http://img2.ph.126.net/dCOhVu2D1URJThJUgi6FnQ==/6597325952866154378.jpg)
然后回到Unity里面,点击第一个按钮“add”。这时候断点起作用了,程序会暂停,MonoDevelop跳到断点的行。
![](http://img0.ph.126.net/E1DVw-2DXjwqzyOlcR5dlQ==/6597587636634065496.jpg)
留意看下面debug的Locals信息,会看到当前状态下的变量i和sum的值。
![](http://img1.ph.126.net/XKmaDtwHbIyO6sCsejAOww==/6597464491331334478.jpg)
使用调试按钮,让程序单步的运行
![](http://img0.ph.126.net/HNe_4Vw8Wx31Q_5sE5odlA==/6598108805145421371.jpg)
我们看到了当前的变量i和sum的实际变化情况。
![](http://img1.ph.126.net/1nkB4x2socGww7w4OH5URw==/6597623920517783395.jpg)
到这里,断点调试已经完成。
调试完之后,我建议最好把MonoDevelop和Unity3D的连接断开。假如你不断开的话,Unity会一直处于很卡的状态。
断开的方法也是有几种了,首先对应Debug按钮有一个断开的按钮,可以直接点击断开。
![](http://img1.ph.126.net/OA11XeUr5EMRF5baNObwgw==/6597899897936360026.jpg)
或者我们可以把刚才附加的进程Detach掉。
![](http://img1.ph.126.net/TZ66Tbi7gS8ABp2rDowKGQ==/6597829529192184802.jpg)
![](http://img2.ph.126.net/Fwf9jMzZTRBk-g8rwU6Y_Q==/6597900997447987769.jpg)
再或者,我们可以点击这个插头按钮,把Debugger 断开。
![](http://img0.ph.126.net/k8H-UGQ9GpE0SnsfG2dZyw==/6598094511494256756.jpg)
相关文章推荐
- Unity3D的断点调试功能
- Unity3D的断点调试功能
- Unity3D的断点调试功能
- Unity3D的断点调试功能
- Unity3D的断点调试功能
- Unity3D的断点调试功能
- Unity3D的断点调试功能(使用MonoDevelop IDE)
- Unity3D的断点调试功能
- Unity3D的断点调试功能
- Unity3D的断点调试功能
- Unity3D的断点调试功能
- Unity3D的断点调试功能
- Unity3D的断点调试功能
- Unity3D + Mono 断点调试功能
- [转载]Unity3D的断点调试功能
- Unity3D的断点调试功能
- Unity3D的断点调试功能
- Fiddler-过滤功能+断点调试详解
- tolua/ulua 框架中增加lua脚本的断点调试功能
- MonoDevelop 断点调试 Unity3D 的2种方法 及附加进程失败问题的解决方法