Unity学习笔记(1)-“Hello World”之Unity的调试和log

原创 2017年04月23日 18:43:27

       作为一个合格的程序员,持续保持学习的状态是十分必要,学习3d有一段时间了,期间接触过虚幻引擎,unity等3d引擎,个人的看法是虚幻引擎功能强大,但unity更适合开发手游,想来自己从2011年底开始接触ios游戏开发时就接触过unity,当时因为自己一直在开发2d游戏,且在2d手机游戏开发上,cocos2d-x有着很好的易用性,所以选择了cocos2d-x作为自己的主要开发引擎学习,同时当时的自己,作为一个游戏开发的一年级菜鸟,还很难理解unity的设计以及全部的功能,学习了一些3d知识,再回来看unity,觉得它是一个易入门难精通的游戏引擎,更适合长期学习使用,虽然不开源,但是随着引擎功能的发展,其使用的灵活性也逐渐提高,因此从去年开始,我开始重新学习unity引擎,同时为了记录自己的学习历程和收获,我的博客将开始Unity学习笔记系列文章的连载,这部分教程将记录一些我学习的心得和体会,另外目前Unity的教程虽多,但成体系的很少,基本都是基于某一方面的讲解,本教程将争取将Unity的知识形成体系,另外本教程介绍的相关辅助代码和框架,我也会继承到我的一套框架中,并在合适的时间开源,希望各位读者为本教程提出改进意见,我们一起完成一套易用的Unity框架中...

       本篇文章介绍Unity中的调试技巧,一般介绍一门新技术时都要从“Hello World”开始,但这里不打算再重复的介绍在屏幕上显示一段文字的方法,因为有大量教程可以做到,这里将介绍如何在Unity中进行调试,作为一名有经验的游戏开发者,调试方法非常重要,我们日常工作有很大部分时间是在debug和调试,所以一个好的调试方法非常重要,本篇将介绍在Unity中断点调试的方法和输出Log的方法

(一)断点调试法

        断点调试是我们日常调试的一个重要手段,提到在Unity中断点调试,首先需要介绍MonoDevelop,它是一个跨平台的开发工具,主要用于.net相关的开发,在使用Unity开发时,MonoDevelop是我们重要的开发工具,在Windows开发环境中,我们可以使用VS或者MonoDevelop作为我们的开发工具,而在Mac系统下,我们使用MonoDevelop作为我们的开发工具。在下载安装完成Unity后,我们需要到MonoDevelop的官网中下载安装MonoDevelop(http://www.monodevelop.com),然后我们需要在Unity的Preference中配置MonoDevelop:


       然后我们需要创建一个unity的工程并新建场景,Unity的工程会自带一个默认的场景,当我们保存场景时,我们需要为场景命名,同时我们在场景中创建一个Cube立方体,然后我们在资源视图中创建一个C#脚本(如果没有特殊说明,本教程中使用C#脚本),然后把C#脚本附到Cube上(addComponet->Script->脚本名),这时运行场景,我们的脚本就起作用了,但是这时运行,我们的断点并不起作用,是因为MonoDevelop没有和Unity编辑器连接,有两个方法可以连接,一个是关掉当前Unity编辑器,运行MonoDevelop,这样保证编辑器窗口由我们的MonoDevelop调用,这个方法并不推荐,因为每次运行都要启动Unity,费时间并且不方便我们同时编辑场景,第二个方法,就是在MonoDevelop的运行菜单中选择Attach To Process,从而可以使在MonoDevelop中调用的断点起作用。




(二)打印Log

      在调试时我们需要在打印一些Log信息来帮助我们,Unity中提供了Debug.Log帮助我们把信息打印在控制台上,如图所示:


      然而,这些有时往往不够,在真机上调试时,我们看不到控制台上的Log,我们需要在屏幕上显示,关于显示Log到屏幕上,可以参考这篇博客:

http://blog.csdn.net/cartzhang/article/details/49818953

      我把这篇博客介绍的DebugConsole集成到我的框架中,DebugConsole目前支持error(红色),warning(黄色)和common(绿色)三种,我们可以根据需求来修改我们的代码,关于这部分代码的修改,后面的博客还会详细介绍。运行效果如图所示


      需要说明的是,在我的博客里,除非特别必要,不会介绍简单的Unity窗口布局和简单操作这些内容,需要的读者可以查一下相关资料

      能力不足,水平有限,如有错误,欢迎指出

      下一篇介绍Android打包和Ios运行在Xcode下的操作

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Unity从HelloWord开始

Unity是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。Unity...

Unity学习笔记(2)- MonoBehaviour类的生命周期及脚本报错收集

在Unity中,脚本的职责就是做GameObject的逻辑驱动,所有需要挂载到GameObject上面的脚本,都需要继承自MonoBehaviour,MonoBehaviour是Unity中所有脚本驱...

CCOrbitCamera 使用

1.水平翻转: [CCOrbitCamera actionWithDuration:2 radius:1 deltaRadius:0 angleZ:0 deltaAngleZ:360 ...

cocos2d-x初探学习笔记(15)--CCOrbitCamera

小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man Cocos2d-x提供了一中根据球面坐标...

cocos2dx 利用CCOrbitCamera实现扑克牌翻牌效果

感谢点评与关注,欢迎转载与分享。 勤奋努力,持之以恒!

CCOrbitCamera-cocos2d翻转效果

cocos2d翻转效果" />   参数分别为旋转的时间,起始半径,半径差,起始z角,旋转z角差,起始x角,旋转x角差 使用举例: -(void) flipCard1 {    ...

cocos2d-x 3.6版本学习笔记-内存管理之Node对象

由于C++目前未提供完整的垃圾回收机制,cocos2d-x必须手动来管理内存。3.6版本里,cocos2d-x使用了一种类oc的内存管理机制,利用引用计算来控制对象的释放。 在cocos2d-x中,几...

Cocos2dx实现翻牌效果(CCScaleTo与CCOrbitCamera两种方式)

由于项目需要实现翻牌的效果,所以自己在完成的过程中将这篇文章写下来,想想还是觉得有点艰辛。 开始在网上找解决的办法找了很久,基本上就是一种解决方案,就是用CCOrbitCamera这个Action类...

cocos2d-x初探学习笔记(13)--内存回收机制

小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 之前提到过cocos2d-x的内存回...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)