zoukankan      html  css  js  c++  java
  • 【转载】Unity3D的断点调试功能

    原文链接:http://liweizhaolili.blog.163.com/blog/static/162307442013214485190/

       断点调试功能可谓是程序员必备的功能了。Unity3D支持编写js和c#脚本,但很多人可能不知道,其实Unity3D也能对程序进行断点调试的。
     
    调试有两种方式,一种是使用visual studio配合unityVS来调试,另一种是使用MonoDevelop自带的调试功能。
    先说unityVS的。感谢网友的提醒,unityVS已经被微软收购,现在叫visual studio tools for unity,免费下载。
    在网上搜索到下载的途径,对应自己使用的vs版本下载:
    Unity3D的断点调试功能 - 阿赵 - 穷到掉渣的超级奶爸阿赵
    下载后只有一个安装包:
    Unity3D的断点调试功能 - 阿赵 - 穷到掉渣的超级奶爸阿赵
     直接安装:
    Unity3D的断点调试功能 - 阿赵 - 穷到掉渣的超级奶爸阿赵
     
    安装完成后,新建Unity项目会多出一个可选的导入包,也可以在建立了项目之后再导入这个包:
    Unity3D的断点调试功能 - 阿赵 - 穷到掉渣的超级奶爸阿赵
     
    Unity3D的断点调试功能 - 阿赵 - 穷到掉渣的超级奶爸阿赵
     
    导入:
    Unity3D的断点调试功能 - 阿赵 - 穷到掉渣的超级奶爸阿赵
     
    导入后在主菜单会多出一个选项:
    Unity3D的断点调试功能 - 阿赵 - 穷到掉渣的超级奶爸阿赵
     
    选择在vs打开:
    Unity3D的断点调试功能 - 阿赵 - 穷到掉渣的超级奶爸阿赵
    将会打开vs
     Unity3D的断点调试功能 - 阿赵 - 穷到掉渣的超级奶爸阿赵
     在vs里面会多出一个按钮,附加进程到unity
    Unity3D的断点调试功能 - 阿赵 - 穷到掉渣的超级奶爸阿赵
     
    接下来,就可以正常的断点调试了。 
    Unity3D的断点调试功能 - 阿赵 - 穷到掉渣的超级奶爸阿赵
      
     
     
            第二种是使用MonoDevelop调试: 
    首先肯定是先要把脚本编辑器指定为MonoDevelop了。
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     

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

    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     
    因为需要有脚本才能对脚本进行调试,所以我写了个很简单的脚本,里面有两个按钮,按第一个“add”按钮的时候,程序会用一个循环的方式把从0到9的数加起来,然后累加给sum。按第二个按钮时,会把sum清零。 
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     
     
    写好脚本之后,把脚本随便拖到场景的物体上面,我们准备调试了。在调试之前,我们需要把MonoDevelop和Unity3D进行连接。
     
    具体的连接方法有2种:
    第一种,先把当前场景保存一下,然后关掉Unity。回到MonoDevelop,按F5或者点击Debug按钮。
     
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
    这样,MonoDevelop会打开一个新的Unity3D界面,这时候连接完成了。
     
     
    第二种方法,无需关掉Unity,在MonoDevelop的Run菜单下选择Attach to Process 
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     
     
    然后选择Unity的进程,点击Attach按钮。 
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     
     这时候,MonoDevelop就连接上了Unity了。
     
    当连接好了Unity3D之后,右边的调试按钮就变成可用了,我们把视窗显示选择Debug。
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     
    debug模式脚本下面的位置会多出两个窗口。 
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     
    回到Unity,点击运行按钮,会看到刚才的脚本已经运行了。里面有两个按钮。 
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     
    回到MonoDevelop,在脚本里面我们打一个断点(在行号左边点一下) 
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     
     然后回到Unity里面,点击第一个按钮“add”。这时候断点起作用了,程序会暂停,MonoDevelop跳到断点的行。
     
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     
    留意看下面debug的Locals信息,会看到当前状态下的变量i和sum的值。 
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     
    使用调试按钮,让程序单步的运行
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     
    我们看到了当前的变量i和sum的实际变化情况。
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     
     
    到这里,断点调试已经完成。
     
    调试完之后,我建议最好把MonoDevelop和Unity3D的连接断开。假如你不断开的话,Unity会一直处于很卡的状态。
     
    断开的方法也是有几种了,首先对应Debug按钮有一个断开的按钮,可以直接点击断开。 
     
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     
    或者我们可以把刚才附加的进程Detach掉。 
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
    再或者,我们可以点击这个插头按钮,把Debugger 断开。
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     
     
  • 相关阅读:
    Java基础知识(一)环境变量的设置、变量与常量、自动类型转换、自增长、赋值运算符
    ModelState
    DOM
    正则表达式常见形式
    通过JS设置一个元素的文本
    JS(三) 原型对象与原型链
    JS(二)call方法和apply方法
    第四周学习进度表
    敏捷开发方法综述
    数组02
  • 原文地址:https://www.cnblogs.com/jexwn/p/4622790.html
Copyright © 2011-2022 走看看