Unity3D的斷點調試功能


 斷點調試功能可謂是程序員必備的功能了。Unity3D支持編寫js和c#腳本,但很多人可能不知道,其實Unity3D也能對程序進行斷點調試的。不過這個斷點調試功能只限於使用Unity3D自帶的MonoDevelop編輯器。而用Visual Studio是不行的。聽說有個叫做UnityVS的東西可以使用VS對Unity進行斷點Debug,不過我本人沒試過。

 
        好了,簡單的說說做法吧:
 
首先肯定是先要把腳本編輯器指定為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的斷點調試功能 - 阿趙 - 有爪的小羔羊阿趙
 
 

         這兩種方法連接Unity,我建議還是使用第二種附加進程的方式吧。畢竟你不可能每次調試都要關掉一次Unity然后再從MonoDevelop打開一次Unity。所以,編寫腳本的時候,把連接Detach掉,等需要調試的時候,再把進程Attach上去,進行調試就行了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM