![Unity 3D\2D手机游戏开发:从学习到产品(第3版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/490/26943490/b_26943490.jpg)
1.4 调试程序
游戏开发中出现错误是正常的,调试程序发现错误非常重要。本节将介绍调试程序的几种常用方式。
1.4.1 显示Log
在Unity编辑器下方有一个Console窗口,用来显示控制台信息,如果程序出现错误,这里会用红色的字体显示出错误的位置和原因,我们也可以在程序中添加输出到控制台的代码来显示一些调试结果:
Debug.Log("Hello, world");
运行程序,当执行到Debug.Log代码时,在控制台会对应显示出Hello, world信息,如图1-13所示。
![](https://epubservercos.yuewen.com/6A4FC9/15367245604191906/epubprivate/OEBPS/Images/figure_0025_0001.jpg?sign=1738971152-JfqIfZg9aEYiuAe5RdW6k3iz1RMv44pT-0-bff37b4b40407514fd269acbac741a4f)
图1-13 显示调试信息
如果将Debug.Log替换为Debug.LogError,控制台显示的文字将呈红色显示。
这些Log内容不仅会在Unity编辑器中出现,在游戏运行中仍然存在,如果是运行到手机上,可以通过工具实时查看,因此对于最后发布的版本要注意控制输出Log的数量。
在Console窗口的右侧选择【Open Editor Log】,会打开编辑器的Log文档,当创建出游戏后,在这个Log文档中会显示出游戏的资源分配情况,如图1-14所示。
![](https://epubservercos.yuewen.com/6A4FC9/15367245604191906/epubprivate/OEBPS/Images/figure_0025_0002.jpg?sign=1738971152-So5b1Xx7Tj6JpabTRCqdnQOyqBKUBFLC-0-7d58033e26162815eb7d2f587b6a006a)
图1-14 Log中保存的信息
1.4.2 在Visual Studio中设置断点
在安装Unity时,如果安装了Microsoft Visual Studio Tools for Unity,即可使用Visual Studio调试Unity程序。方法很简单,首先选择代码,按F9键设置断点,然后到Visual Studio的工具栏中选择Attach to Unity and Play,如图1-15所示,Unity编辑器即会在调试状态下运行游戏。
![](https://epubservercos.yuewen.com/6A4FC9/15367245604191906/epubprivate/OEBPS/Images/figure_0025_0003.jpg?sign=1738971152-7Cje9zEgZXr7t94WPLaxSqvz8GC3Sf8y-0-5f7e8dba36fd3243f58835930f52a1bb)
图1-15 在Visual Studio中调试Unity程序
当程序运行至断点设置位置时即会暂停,可以通过Visual Studio提供的工具查看分析程序运行状况,如图1-16所示。按F5键可以继续断点后面的程序,或者按F11、F10键执行单步调试,最后按Shift + F5组合键停止调试。
![](https://epubservercos.yuewen.com/6A4FC9/15367245604191906/epubprivate/OEBPS/Images/figure_0025_0004.jpg?sign=1738971152-O8TKTYsHO8ccFJ1QGrglTEOvxmsZOkoH-0-573e039dd3366d7de58f89408fd522c7)
图1-16 查看程序运行状况
1.4.3 在MonoDevelop中设置断点
Unity自带的Mono脚本编辑器也提供了断点调试功能,使用方法如下:
步骤 01 使用MonoDevelop作为默认的脚本编辑器。在Project窗口中双击C#脚本打开MonoDevelop编辑器。
步骤 02 在代码中按F9键设置断点。
步骤 03 在MonoDevelop的菜单栏中选择【Run】→【Run With】→【Unity Debugger】。
步骤 04 在Unity编辑器中运行游戏,当运行到断点时游戏会自动暂停,这时可以在MonoDevelop中查看调试信息,如图1-17所示。按F5键可以继续断点后面的程序,所有的快捷键与Visual Studio几乎是一样的。
![](https://epubservercos.yuewen.com/6A4FC9/15367245604191906/epubprivate/OEBPS/Images/figure_0026_0005.jpg?sign=1738971152-wZWS4M7FJGIzDVDiTnsSbINKvPxQ0X6y-0-efefb4ba9115684322edfebea60f4b53)
图1-17 利用断点调试