zoukankan      html  css  js  c++  java
  • 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。只是阿赵我本人没试过。

     


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


     


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


    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵

     

    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵


     



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


    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵


     


    由于须要有脚本才干对脚本进行调试。所以我写了个非常easy的脚本,里面有两个button,按第一个“add”button的时候,程序会用一个循环的方式把从0到9的数加起来。然后累加给sum。

    按第二个button时,会把sum清零。

     


    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵


     


     


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


     


    详细的连接方法有2种:


    第一种,先把当前场景保存一下,然后关掉Unity。

    回到MonoDevelop,按F5或者点击Debugbutton。

     

    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵


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


     


     

    另外一种方法。无需关掉Unity,在MonoDevelop的Run菜单下选择Attach to Process 

    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵


     


     

    然后选择Unity的进程,点击Attachbutton。

     

    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵


     


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


     


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


    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵


     

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

     

    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵


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

     

    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     
    回到MonoDevelop,在脚本里面我们打一个断点(在行号左边点一下) 
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     
     然后回到Unity里面,点击第一个button“add”。

    这时候断点起作用了,程序会暂停,MonoDevelop跳到断点的行。

     
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     
    留意看以下debug的Locals信息。会看到当前状态下的变量i和sum的值。 
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     
    使用调试button。让程序单步的执行
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     
    我们看到了当前的变量i和sum的实际变化情况。
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     
     
    到这里,断点调试已经完毕。
     
    调试完之后,我建议最好把MonoDevelop和Unity3D的连接断开。

    假如你不断开的话。Unity会一直处于非常卡的状态。

     
    断开的方法也是有几种了。首先相应Debugbutton有一个断开的button。能够直接点击断开。 
     
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     
    或者我们能够把刚才附加的进程Detach掉。 
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     
    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
    再或者,我们能够点击这个插头button,把Debugger 断开。

    Unity3D的断点调试功能 - 阿赵 - 有爪的小羔羊阿赵
     
     

             这两种方法连接Unity,我建议还是使用另外一种附加进程的方式吧。毕竟你不可能每次调试都要关掉一次Unity然后再从MonoDevelop打开一次Unity。

    所以,编写脚本的时候,把连接Detach掉,等须要调试的时候。再把进程Attach上去,进行调试即可了。

  • 相关阅读:
    c++ 反汇编 堆变量
    glibc源码逆向——fread函数
    glibc源码逆向——fopen
    buu查漏补缺刷题(3)
    gyctf_2020_borrowstack
    实现用句柄表反调试
    pwnable_orw 学习shellcraft新花样
    buu查漏补缺刷题(2)
    gdb调试源码
    buu查漏补缺刷题(1)
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/5099486.html
Copyright © 2011-2022 走看看