请选择 进入手机版 | 继续访问电脑版

【3D技术宅公社】XR数字艺术论坛  XR技术讨论 XR互动电影 定格动画

 找回密码
 立即注册

QQ登录

只需一步,快速开始

调查问卷
论坛即将给大家带来全新的技术服务,面向三围图形学、游戏、动画的全新服务论坛升级为UTF8版本后,中文用户名和用户密码中有中文的都无法登陆,请发邮件到324007255(at)QQ.com联系手动修改密码

3D技术论坛将以计算机图形学为核心,面向教育 推出国内的三维教育引擎该项目在持续研发当中,感谢大家的关注。

查看: 7757|回复: 14

[基础技术] [转]Unity3D的断点调试功能

[复制链接]
发表于 2013-4-28 10:24:35 | 显示全部楼层 |阅读模式
断点调试功能可谓是程序员必备的功能了。Unity3D支持编写js和c#脚本,但很多人可能不知道,其实Unity3D也能对程序进行断点调试的。不过这个断点调试功能只限于使用Unity3D自带的MonoDevelop编辑器。而用Visual Studio是不行的。听说有个叫做UnityVS的东西可以使用VS对Unity进行断点Debug,不过我本人没试过。

        好了,简单的说说做法吧:

首先肯定是先要把脚本编辑器指定为MonoDevelop了。




选择好之后,可以在项目面板右键选择Sync MonoDevelop Project来打开MonoDevelop。



因为需要有脚本才能对脚本进行调试,所以我写了个很简单的脚本,里面有两个按钮,按第一个“add”按钮的时候,程序会用一个循环的方式把从0到9的数加起来,然后累加给sum。按第二个按钮时,会把sum清零。



写好脚本之后,把脚本随便拖到场景的物体上面,我们准备调试了。在调试之前,我们需要把MonoDevelop和Unity3D进行连接。

具体的连接方法有2种:
第一种,先把当前场景保存一下,然后关掉Unity。回到MonoDevelop,按F5或者点击Debug按钮。

这样,MonoDevelop会打开一个新的Unity3D界面,这时候连接完成了。


第二种方法,无需关掉Unity,在MonoDevelop的Run菜单下选择Attach to Process


然后选择Unity的进程,点击Attach按钮。

这时候,MonoDevelop就连接上了Unity了。

当连接好了Unity3D之后,右边的调试按钮就变成可用了,我们把视窗显示选择Debug。


debug模式脚本下面的位置会多出两个窗口。

回到Unity,点击运行按钮,会看到刚才的脚本已经运行了。里面有两个按钮。

回到MonoDevelop,在脚本里面我们打一个断点(在行号左边点一下)

然后回到Unity里面,点击第一个按钮“add”。这时候断点起作用了,程序会暂停,MonoDevelop跳到断点的行。


留意看下面debug的Locals信息,会看到当前状态下的变量i和sum的值。

使用调试按钮,让程序单步的运行


我们看到了当前的变量i和sum的实际变化情况。



到这里,断点调试已经完成。

调试完之后,我建议最好把MonoDevelop和Unity3D的连接断开。假如你不断开的话,Unity会一直处于很卡的状态。

断开的方法也是有几种了,首先对应Debug按钮有一个断开的按钮,可以直接点击断开。


或者我们可以把刚才附加的进程Detach掉。


再或者,我们可以点击这个插头按钮,把Debugger 断开。



         这两种方法连接Unity,我建议还是使用第二种附加进程的方式吧。毕竟你不可能每次调试都要关掉一次Unity然后再从MonoDevelop打开一次Unity。所以,编写脚本的时候,把连接Detach掉,等需要调试的时候,再把进程Attach上去,进行调试就行了。
发表于 2014-3-21 17:01:47 | 显示全部楼层
很的的讲解。我喜欢
发表于 2014-3-26 19:46:04 | 显示全部楼层
一模一样的尝试 不行
发表于 2014-6-30 22:45:56 | 显示全部楼层
太好了,我谢谢分享
发表于 2014-7-1 18:00:25 | 显示全部楼层
谢谢楼主分享
发表于 2014-8-24 19:48:38 | 显示全部楼层
有很多图片显示不出来
发表于 2014-8-25 23:03:41 | 显示全部楼层
huking 发表于 2014-8-24 19:48
有很多图片显示不出来

恩~~但是看文字也能做出来
发表于 2014-12-18 17:12:26 | 显示全部楼层
这个功能当初在网上找了好久,现在经常用到
发表于 2015-2-4 16:08:55 | 显示全部楼层
这个好有用,谢谢楼主分享
发表于 2015-2-4 16:10:32 | 显示全部楼层
Unity3D是哪个版本的?
发表于 2015-4-12 10:07:16 | 显示全部楼层
原来还可以这样!!!
发表于 2015-5-13 21:03:51 | 显示全部楼层
程序调试是一项很重要的技能因为程序就是靠调试出来的
发表于 2015-7-26 15:14:20 | 显示全部楼层
阅。已学习!!顶一下
发表于 2015-9-8 16:30:27 | 显示全部楼层
这样开发起来更加方便了~学习了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|3D数字艺术论坛 ( 沪ICP备14023054号 )

GMT+8, 2024-3-29 15:27

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表