unity3d异常和错误处理的例子

1.U3D经常莫名奇妙崩溃。

一般是由于空异常造成的,多多检查自己的引用是否空指针。

2.编码切换警告提示。

警告提示:Some are Mac OS X (UNIX) and some are Windows.

This might lead to incorrect line numbers in stacktraces and compiler errors. Many text editors can fix this using Convert Line Endings menu commands.

编码格式问题,VS的话直接高级保存方案里面修改,一般我选的是UNICODE(UTF8代签名)MACINTOSH(CR),WINDOW下的可以选WINDOWS的格式,两边都要用的话,推荐选CR。

BUG:IOS下,游戏中的中文显示乱码。

解决方式:同上,修改改代码页的编码。UNICODE(UTF8代签名)MACINTOSH(CR)

3.中文界面解决问题。

monodevelop中文显示解决方法:

http://www.cocoachina.com/bbs/read.php?tid-78563.html

中文Mac系统下MonoDevelop乱码解决:

http://blog.csdn.net/ssihc0/article/details/6796118

4.安装空项目报错

不知道怎么地,在IOS试过一次空项目也在错误提示。大概是说什么“找不到需要的方法”。

重装一下就好了,估计是UNITY文件损坏或者安装不完全出错了。重装吧。

错误提示:MissingMethodException: Cannot find the requested method.

估计是破解U3D造成的,该破解文件可能是不支持WIN7下的……

解决方法:

1、换正版。

2、换个破解文件。

5.平台编译错误或库引用缺失

错误提示:error CS1061: Type `System.IO.FileInfo' does not contain a definition for `Delete' and no extension method `Delete' of type `System.IO.FileInfo' could be found (are you missing a using directive or an assembly reference?)

出了这个错误一般有两个原因了。

1.没有引用相关的库。

2.选错编译平台。(BuildSetting里面的Platform)

错误提示:Could not start compilationWin32Exception:ApplicationName="XXXX\mono.exe",……


解决方式:重装UNITY3D。

6.内存资源加载错误问题

错误提示:Trying to reload asset from disk that is not stored on disk

个人是在加载多个ASSETBUNDLE时,用了释放镜像之后,发生了下面的BUG。

这个警告它并没有对游戏流程有任何影响,不过一直跳出来很烦人。我们项目中是因为用Dictionary删除的时候没有删除完整导致的。

个人认为比较大可能是下面的原因:

还没释放完镜像再次加载就出BUG了。将所有ASSETBUNDLE加载完后再同一释放,这样就没问题了。

Unity will only allow you to have a single instance of a particular AssetBundle loaded at one time in your application. What this means is that you can't retrieve an AssetBundle from a WWW object if the same one has been loaded previously and has not been unloaded. In practical terms it means that when you try to access a previously loaded AssetBundle like this:

查阅了一下,貌似还有别的问题能导致这提示。下面是相关可以继续深入的资料,可以帮助大家理解U3D的加载和内存管理:

百度搜一下下面两篇文章,应该是出自圣典论坛:

1.【全面理解Unity加载和内存管理】

2.【全面理解Unity加载和内存管理机制之二:进一步深入和细节】

貌似老外也没完全确切搞定这个。

错误提示:Deleting persistent object without writing it first

不论如何你都不应该直接修改一个从assetbundle加载进来的最初数据,一般都要先实例化出来再对其修改。但是引用的东西(例如mesh),这些也不能修改它。若要修改的话,则先复制一份出来。

//复制一份模型出来重新复制,以免直接修改被引用的镜像模型。如下:

Mesh temp = Mesh.Instantiate(smr.sharedMesh) as Mesh;

myMesh.sharedMesh = temp;

7.时间错误、NaN错误

错误提示:transform.position assign attempt for 'XXX' is not valid。Input rotation is {NaN, NaN, NaN, NaN}.

一般是由于游戏暂停将timescale设为0引起的,需要寻找相应用了Time.deltTime等参数的函数修改。否则会导致计算出错报空异常。

8.动画错误

这个错误是4.0新引进动画系统才出现的。

错误提示:Mecanim: BindSkeleton: Cannot find transform"objectname"

解决方式:

1.找到该对应transform"objectname"的模型,直接在检索面板搜索所有相应名字,能容易找到。

2.将模型的面板的Rig部分的动画AnimationType改为none

9.坐标系向量计算的错误提示

错误提示:Look rotation viewing vector is zero

解决方式:一般是由于摄像机的旋转角度造成的。也可能是向量的计算多余而系统提示。我们项目中是强制摄像机90度的时候出现,改成89.9度就没问题了。

10.关于AssetServer

错误:明明上传了所有修改,但是别人的机子却没有下载带最新代码。

原因:Merge完代码之后,操作了ignore server change,UNITY默认是以你本机子的为准,若此代码没有再次修改,则AssetServer不认为这个东西被修改过,没有上传那代码。

解决方式:打个空格重新保存一下该代码。

11.关于数据格式的错误

错误提示:Illegal JSON sequence

12.导出WINDOS平台下的项目运行不成功

错误提示:没有找到相应assetbundle的路径

解决方式:因为用了assetbundle加载,而游戏在有中文路径下,assetbundle的路径不能有中文。换个无中文的目录即可。从根源上能解决的方案现在暂时没有。

13.导入资源出错

错误提示:Error while importing package :Couldn't decompress package

解决方式:导入资源出错,大部分都是中文路径惹的祸。将资源换到无中文路径试试。如C/D盘根目录。

14.效率调优报错

错误提示:Non matching Profiler.EndSample (BeginSample and EndSample count must match)

15.IOS下JIT错误问题、编译错误、调试错误

IOS下JIT错误是比较常见的,因为IOS不支持JIT动态编译,所以需要改为合适的AOT静态编译。

错误提示:Attempting to JIT compile method 'System.Linq.OrderedEnumerable`1>:GetEnumerator ()' while running with --aot-only.

错误提示:Installation of apps is prohibited by a policy on the device

解决方式:打开一个开关,允许在安装APP,在“设置-》通用-》访问限制-》安装应用程序” 这。

16.U3D寻路信息错误

错误提示:"XXXX" can only be called on an active agent that has been placed on a NavMesh.

解决方式:角色或怪物生成时要直接给模型赋值到相应的地形位置上。因为开始寻路组建没有获取到正确配置而一直报错。

17.Assetbundle资源版本不对

团队协作有时候可能会有人用的U3D版本与其他人不一样,这个是要求先协定好的。大家要用同样的版本作为开发基础。

解决方式:关于assetbundle的问题,4.1版本打出来的包,在4.2读取是不适应的。得注意打包的环境。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容

  • 1、什么是AssetBundle AssetBundle 是Unity pro提供的一种用来存储资源的文件格式,它...
    好怕怕阅读 7,476评论 1 8
  • 最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大. 这里写下关于unity3d对于内存的管理与优化...
    杨树叶的杨阅读 1,056评论 0 0
  • 翻译:莫铭原文地址:AssetBundle usage patterns 本系列中的上一篇文章覆盖了AssetBu...
    莫铭阅读 5,211评论 1 12
  • 一:什么是协同程序?答:在主线程运行时同时开启另一段逻辑处理,来协助当前程序的执行。换句话说,开启协程就是开启一个...
    CrixalisAs阅读 2,037评论 1 7
  • 2017的春节本有着诸多期待和安排。 霖哥快2岁第一次回老家过年,初二清晨开始莫名发烧,就这样之后的日子护理霖哥是...
    家亦阅读 189评论 0 0