纳金网

标题: U3D异常汇总 [打印本页]

作者: 狂风大尉    时间: 2014-10-29 04:01
标题: U3D异常汇总
这是我总结的一些u3d异常的解决方案,大家有问题就来看看吧,或许可以帮到你。

一、unity3d经常莫名奇妙崩溃
一般是由于空异常造成的,多多检查自己的引用是否空指针。

二、编码切换警告提示
警告提示:Some are Mac OS X (UNIX) and some are Windows.
This might lead to incorrect line numbers in stacktraces andcompiler errors. Many text editors can fix this using Convert LineEndings menu commands.
编码格式问题,VS的话直接高级保存方案里面修改,一般我选的是UNICODE(UTF8代签名)MACINTOSH(CR),WINDOW下的可以选WINDOWS的格式,两边都要用的话,推荐选CR。

三、安装空项目报错
不知道怎么地,在IOS试过一次空项目也在错误提示。大概是说什么“找不到需要的方法”。
重装一下就好了,估计是UNITY文件损坏或者安装不完全出错了。
错误提示:MissingMethodException: Cannot find the requestedmethod.
估计是破解Unity3D造成的,该破解文件可能是不支持WIN7下的。解决方法:换正版或换个破解文件。

四、平台编译错误或库引用缺失
错误提示:error CS1061: Type `System.IO.FileInfo' does not containa definition for `Delete' and no extension method `Delete' of type`System.IO.FileInfo' could be found (are you missing a usingdirective or an assembly reference?)
出了这个错误一般有两个原因了。
1.没有引用相关的库。
2.选错编译平台。(BuildSetting里面的Platform)
错误提示:Could not startcompilationWin32Exception:ApplicationName=“XXXX\mono.exe”,……
解决方式:重装UNITY3D。

五、内存资源加载错误问题
错误提示:Trying to reload asset from disk that is not stored ondisk
个人是在加载多个ASSETBUNDLE时,用了释放镜像之后,发生了下面的BUG。
这个警告它并没有对游戏流程有任何影响,不过一直跳出来很烦人。我们项目中是因为用Dictionary删除的时候没有删除完整导致的。
个人认为比较大可能是下面的原因:
还没释放完镜像再次加载就出BUG了。将所有ASSETBUNDLE加载完后再同一释放,这样就没问题了。
错误提示:Deletingpersistent object without writing it first
不论如何你都不应该直接修改一个从assetbundle加载进来的最初数据,一般都要先实例化出来再对其修改。但是引用的东西(例如mesh),这些也不能修改它。若要修改的话,则先复制一份出来。
复制一份模型出来重新复制,以免直接修改被引用的镜像模型。

六、时间错误、NaN错误
错误提示:transform.position assign attempt for 'XXX' is notvalid。Input rotation is {NaN, NaN, NaN, NaN}.
一般是由于游戏暂停将timescale设为0引起的,需要寻找相应用了Time.deltTime等参数的函数修改。否则会导致计算出错报空异常。

七、动画错误
这个错误是4.0新引进动画系统才出现的。
错误提示:Mecanim: BindSkeleton: Cannot findtransform“objectname”
解决方式:
1.找到该对应transform“objectname”的模型,直接在检索面板搜索所有相应名字,能容易找到。
2.将模型的面板的Rig部分的动画AnimationType改为none

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

九、关于AssetServer
错误:明明上传了所有修改,但是别人的机子却没有下载带最新代码。
原因:Merge完代码之后,操作了ignore serverchange,UNITY默认是以你本机子的为准,若此代码没有再次修改,则AssetServer不认为这个东西被修改过,没有上传那代码。
解决方式:打个空格重新保存一下该代码。

十、导出WINDOS平台下的项目运行不成功
错误提示:没有找到相应assetbundle的路径
解决方式:因为用了assetbundle加载,而游戏在有中文路径下,assetbundle的路径不能有中文。换个无中文的目录即可。从根源上能解决的方案现在暂时没有。

十一、导入资源出错
错误提示:Error while importing package :Couldn't decompresspackage
解决方式:导入资源出错,大部分都是中文路径惹的祸。将资源换到无中文路径试试。如C/D盘根目录。

作者: hyui    时间: 2014-10-29 04:37
!!!  Good article
作者: oelongeo    时间: 2014-10-29 11:06
谢谢您的指导和解释
作者: 我不再年轻    时间: 2014-10-30 12:43
不错,很详细的解释
作者: Mr.Fair    时间: 2014-10-31 13:24
Thanks for sharing !




欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5