Unity3d的iOS调试实用技巧

其实调试方法也不能算”Debug”,,只能算”Log”,目测和一般程序猿不同,这是我一贯的编程解决方法,因为你根本不可能在一个跨平台,开源,多语言嵌入的源码还执行传统的debug,u3d,unreal4均是这样的平台,如果有更好的“调试”(troubleshooting, monitor, efficiency)方法欢迎指出

一开始以为是什么古灵精怪的错误,后来才发现打错特错,一个很简单的错误也会导致爆内存地址,¥#¥%!@#%#@
毕竟2016了,4年了,这些”Debug”很多人已经掌握,官方资料必须看,U3d Manual

我除了Manual,还参考了这个博客风宇冲Unity3D教程学院

一个国内“老师”的说辞:“5.3.3亲测无效”

(我自己经过测试和不同尝试,却是可以的,可行方法在最后,老师,你又说不对了,自己教的自己都不测试一下么?)

在用Unity3d开发iOS游戏的过程中,经常会面临一个问题,unity3d build到Xcode里的工程很难调试。因为出错时看到的都是些乱七八糟的内存地址 就算根据 plt_Unity3d_GameObject_Find_String之类的信息你也不知道出错在哪。而Xcode的处理方式Enable Zombie Objects和bt指令对Unity3d的出错检测也没什么帮助。

开启Development Build,Script Debugging
有一个很好的解决办法。点击File->Build Settings, 有如下界面。然后把Development Build勾上,就开启了开发模式(在真机运行时右下角有Development Build字样)。之后再勾Script Debugging,就开启了脚本Debug。
这里写图片描述

当出现错误时
如下,会告诉你错误类型为NullReferenceException。在调用Object时 Object为空。这个错误发生在UIManager.Update () -> UpdateBar()里,UIManager.CS文件里的第206 行代码。

NullReferenceException: A null value was found where an object instance was required.
at UIManager.UpdateBar () [0x000c3] in /Users/Chukong/Desktop/SVN_Folder/PocketClimber_105/PocketClimber_1.05_UnityProj/Assets/Scripts/UI/UIManager.cs:206
at UIManager.Update () [0x00015] in /Users/Chukong/Desktop/SVN_Folder/PocketClimber_105/PocketClimber_1.05_UnityProj/Assets/Scripts/UI/UIManager.cs:127

怎么样,是不是很方便?

关于Profiler

开发模式下还有另外一个选项 - Autoconnect Profiler自动连接至 Profiler(分析器) 就是性能监测工具。用起来比较麻烦,得电脑与移动设备都处在相同的Adhoc 无线网中。iOS下Profiler不如Xcode的Instrument使用起来方便。
对Profile监测iOS有兴趣的同学,可以看看下面的链接:
http://answers.unity3d.com/questions/340373/wth-profiler-not-working-with-ios.html
http://answers.unity3d.com/questions/51478/unity-pro-profiler-cant-find-my-iphone.html

最新xcode7,unity3d 5.3.3,试了上面方法很9都不行

最后改编译为IL2CPP即可,发布到最新app store也需要这个
这里写图片描述
这里写图片描述
最种结果已经不会显示2进制,单片机码了,虽然还不能定位到哪一行,但能看到是哪个类的哪个方法出问题,已经跨出一大步,继续苦逼吧,程序猿。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

avi9111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值