unity 将警告视为错误误这个错误怎么回事

[Unity3D]引擎崩溃、异常、警告、BUG与提示总结及解决方法
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
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中文显示解决方法:
/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
`Delete' and no extension
method `Delete' of type `System.IO.FileInfo' could be found
you missing a using directive
or an assembly reference?)
出了这个错误一般有两个原因了。
1.没有引用相关的库。
2.选错编译平台。(BuildSetting里面的Platform)
错误提示:Could not start
compilationWin32Exception:ApplicationName="XXXX\mono.exe",……
[Unity3D]引擎崩溃、异常、警告、BUG与提示总结及解决方法
解决方式:重装UNITY3D。
6.内存资源加载错误问题
错误提示:Trying to reload asset
from disk that is not stored on disk
个人是在加载多个ASSETBUNDLE时,用了释放镜像之后,发生了下面的BUG。
这个警告它并没有对游戏流程有任何影响,不过一直跳出来很烦人。我们项目中是因为用Dictionary删
除的时候没有删除完整导致的。
解决方案参考:.cn/s/blog_5b6cbipi.html
个人认为比较大可能是下面的原因:
还没释放完镜像再次加载就出BUG了。将所有ASSETBUNDLE加载完后再同一释放,这样就没问题了。
Unity will only allow you to
have a single instance of a particular AssetBundle loaded
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.
practical terms it means that
when you try to access a previously loaded AssetBundle
:/Documentation/Manual/keepingtrackofloadedassetbundles.html)
查阅了一下,貌似还有别的问题能导致这提示。下面是相关可以继续深入的资料,可以帮助大家理解U3D
的加载和内存管理:
百度搜一下下面两篇文章,应该是出自圣典论坛:
1.【全面理解Unity加载和内存管理】
2.【全面理解Unity加载和内存管理机制之二:进一步深入和细节】
国外论坛的讨论:
/threads/49298-Trying-to-reload-asset-from-disk-that-is-not-
stored-on-disk
貌似老外也没完全确切搞定这个。
错误提示:Deleting persistent object
without writing it first
不论如何你都不应该直接修改一个从assetbundle加载进来的最初数据,一般都要先实例化出来再对其修
改。但是引用的东西(例如mesh),这些也不能修改它。若要修改的话,则先复制一份出来。
//复制一份模型出来重新复制,以免直接修改被引用的镜像模型。如下:
Mesh temp =
Mesh.Instantiate(smr.sharedMesh) as M
myMesh.sharedMesh =
7.时间错误、NaN错误
错误提示:transform.position assign
attempt for 'XXX' is not valid。Input rotation is
NaN, NaN, NaN}.
一般是由于游戏暂停将timescale设为0引起的,需要寻找相应用了Time.deltTime等参数的函数修改。否
则会导致计算出错报空异常。
详细解决看另一篇文章:
关于NaN(Not a
Number)的问题&
.cn/s/blog_5b6cbe.html
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度就没问题了。
具体还有的参考U3D官方论坛:
/questions/397425/look-rotation-viewing-vector-is-zero-error.html
若没找到解决方法再搜索下。
10.关于AssetServer
错误:明明上传了所有修改,但是别人的机子却没有下载带最新代码。
原因:Merge完代码之后,操作了ignore server
change,UNITY默认是以你本机子的为准,若此代码没有
再次修改,则AssetServer不认为这个东西被修改过,没有上传那代码。
解决方式:打个空格重新保存一下该代码。
11.关于数据格式的错误
错误提示:Illegal JSON
解决方式:
/threads/143168-JsonFX-WTF-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
解决方式:/unitypark/index.php?p=/discussion/1468/non-
matching-profiler-endsample/p1
15.IOS下JIT错误问题、编译错误、调试错误
IOS下JIT错误是比较常见的,因为IOS不支持JIT动态编译,所以需要改为合适的AOT静态编译。
错误提示:Attempting to JIT compile
'System.Linq.OrderedEnumerable`1&:GetEnumerator&
()' while running with
--aot-only.
解决方式:
关于使用了LINQ字典排序的错误解决方法
.cn/s/blog_5b6cb9500101gnrl.html
错误提示: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读取是不适应的。得注意打包的环境。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。error C2220: 警告被视为错误
我的图书馆
error C2220: 警告被视为错误
错误提示:error C2220: 警告被视为错误 - 没有生成“object”文件错误原因:原因是该文件的代码页为英文,而我们系统中的代码页为中文。
解决方法:1,将源码转化为正确的编码方式&&& 用vs2008打开对应的文档,文件-&打开-&选择该cpp,然后保存。&&& 如果不起作用的话,修改其中一部分,或者 选择替换,选中正则表达式,将\n替换为\n。&& 也可以用文本编辑器如Notepad,更改代码文件的编码方式,改为ANSI。
2,设置项目属性,取消警告视为错误&&& VS2008菜单 - 项目 - 属性 - 通用配置 - C/C++ - 常规 - 将警告视为错误 修改为 否,重新编译即可。
转自:/jiahuiren/blog/item/3aae94c7f2e09dd8d0006027.html这种错误的原因是:原因是该文件的代码页为英文,而我们系统中的代码页为中文。解决方案:启动Microsoft Visual Studio 2005,文件-&打开-&选择该cpp,然后保存。从新打开程序文件运行,此错误不再出现。如果上述不能去掉错误,还可以点击项目,右击选择属性-&配置属性-&c/c++-&常规,将“警告视为错误”的选项改为“否”。就可以!
VC 2005 编译过程中出现如下错误:
错误 1 error C2220: 警告被视为错误 - 没有生成“object”文件 d:\asdf\asdf\asdf.cpp 167
这种错误的原因是:1)是该文件的代码页为英文,而我们系统中的代码页为中文。解决方案:a)新建一个VC项目,然后把代码COPY过来。b)启动Microsoft Visual Studio 2005,文件-&打开-&选择该cpp,然后保存。从新打开程序文件运行,此错误不再出现。如果上述不能去掉错误,还可以点击项目,右击选择属性-&配置属性-&c/c++-&常规,将“警告视为错误”的选项改为“否”。就可以!
2)在编译开关里拿掉&& /WX&& 开关
3)双击这个编译错误,这时错误会志向一条语句如:sprintf(szCont,"L %f B %f H %f",p-&dat.posdat.pos.l,p-&dat.posdat.pos.b,p-&dat.posdat.pos.h);我们的一般看法,这条语句是没有什么错误的,甚至网上有朋友提出修改工程的属性设置,忽略这些告警就可以了(这种方法网上讲了很多,就不多说了),但是我个人认为这样没有解决本质问题,就查看了一下MSDN发现,如下编写便不会出现上边的编译错误:sprintf_s(szCont,sizeof(szCont),"L %f B %f H %f",p-&dat.posdat.pos.l,p-&dat.posdat.pos.b,p-&dat.posdat.pos.h);
相关指令还有:itoa 改用 _itoa_sstrcat 改用 strcat_sstrcpy 改用 strcpy_s等,VC 2005的帮助文件中有相关说明
同样的方法也解决了类似于以下的问题:警告 2 warning C4996: “sprintf”被声明为否决的 d:\test_src\mdidocvw\SeeAllVw.cpp 167 VC 2008 中如果变量没有使用也可能会产生这个错误,需要对没有使用的变量进行UNREFERENCED_PARAMETER(dwData);声明.
TA的最新馆藏1144人阅读
Unity3D(100)
译者注:此方法并不一定适合所有场合,大家可以当作参考。
警告在任何一种编译型语言中都非常非常的重要:它们告知你计算机已经检查了你的代码,而且意识到你“很可能”创造了一个bug;它们甚至提供一些关于这个bug会是什么的信息。
但是计算机又不是很确定它所警告的是不是bug——如果是确定的,那它就是一个编译错误(红色的)了。所以,在Unity中,警告是黄色的,而且是“不确定的”。但是,在有些情况下,你明明知道不是bug却要报出警告,这是非常恼人的。绝大多数集成开发环境都能让你设置警告的开与关,Unity却做不了。。。这里就是讲我们怎么解决这个。
注:全局的警告关闭技术可用在很多地方,比如自定义工程范围内的#defines——更多信息在:Unity Forum thread on SMCS etc
确保你真的要这样做& && && && && && && &&&
如果你知道你在对编译警告做什么,跳过这一节。
其余的每一个人:请三思。一个警告意味出现了下面的某种情况:
& && &你有一个写到一半的类或者算法,所以有一些未被使用的代码,等等。这不是BUG。
& && &你在以一种不寻常的方式使用编程语言。有可能是个BUG
& && && & 1.如果该不寻常使用是个意外:很有可能是个BUG
& && && & 2.如果该不寻常使用是深思熟虑的,专业级别的:不是BUG
& && &你本要敲一个变量,却意外地写成了另外一个变量的名字。严重的,常见的BUG
(特别要注意最后一条:这是最糟糕的bug,你看上一百遍也看不出有哪里是“错误的”,而且计算机也报告是语法正确的!)
所以,即使很多的警告是“误报”(本来就不是bug,而且你也知道),但也有很多是“警告对”的,而且它们是你抵御某些险恶bug的最后防线。要在个案的基础上对待每一个警告!
选项1:在所有地方关闭警告
作为一个资深的C/C++程序员,这对我非常有用。我是这样写代码的:
基于C语言和类C语言的内在功能,第4行的速写“;//”就能让你开启/关闭一行代码,只需敲4下键盘。在现代的集成开发环境中,通常有更好的方法实现该效果,但它不失为一个小而有效的例子。&
这个代码在Unity控制台触发了一个警告:
对于这种情况的警告,我们要在所有的地方关闭它;因为这种写法是我正在使用的一种深思熟虑的技术,所以我不需要(或者说不想要)这种警告。我想到了这种警告的后果:它以为是你意外地在“if”语句的同一行写了一个分号。我范这种错误,那是快15年前的事了;我有信心在短期内不会再范这样的错误。
&& &创建文件“smcs.rsp”
&& &保存文件到你工程的Assets文件下面
&& &一行写一个你要废止的警告(写法看下面)
&& &修改任意一个文件,Unity会重新现场加载并遵从你的新设置
smcs.rsp的内容:
-nowarn: 1234
“1234”就是Unity控制台里出现在警告消息里的那个数字——在我的案例中,我们最后得到的是:
所以在文件里,我写上:
-nowarn:0642&
注:这只作用于游戏脚本。如果对编辑器脚本做这样的操作,你要使用另外一个文件——gmcs.rsp
选项2:只在一个文件中关闭警告
举个例子,你在使用一个新的游戏功能,而且正在做调整。你有一堆正在调整的变量,有时在代码中用到,有时又不用到。你会得到这个恼人的警告:
只对这个文件,你要忽略这个特定的警告。当你完成了这个长时段的调整,你又要重启这个警告。
1.& && &&&来到文件的最顶端
2.& && &&&对每一个你要关闭的警告添加一行#pragma语句:#pragma warning disable 1234;
再一次,这个数字是Unity控制台里出现在字母“CS”之后的任何数字。在我的例子里,是0219。
选项3:在单行代码上关闭警告(或者是一整块代码)&
这跟选项2类似,除了:
1.& && & 找到你要关闭警告的语句行
2.& && & 在代码行前,为每一个警告添加一行关闭警告的#pragma语句
3.& && & 在代码行后,为每一个警告添加一行开启警告的#pragma语句
原文作者:adam
原文出处:http://t-machine.org/index.php//-remove-yellow-warnings-you-dont-need-unitytips/
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:119190次
积分:1771
积分:1771
排名:千里之外
原创:17篇
转载:246篇
(1)(2)(17)(1)(4)(1)(4)(3)(3)(3)(3)(2)(3)(2)(1)(5)(2)(1)(2)(6)(15)(55)(1)(14)(11)(13)(7)(17)(10)(17)(12)(4)(19)(7)unity 做一个小游戏过程中出现的错误,求大神解救【unity3d吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:71,478贴子:
unity 做一个小游戏过程中出现的错误,求大神解救收藏
InvalidOperationException: Col enumeration operation may not execute.System.Collections.Generic.List`1+Enumerator[UnityEngine.GameObject].VerifyState () (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Collections.Generic/List.cs:778)System.Collections.Generic.List`1+Enumerator[UnityEngine.GameObject].MoveNext () (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Collections.Generic/List.cs:784)Platform.Update () (at Assets/Scripts/Platform.cs:17)下面是显示出错的脚本,改来改去改不好
薛之谦最喜欢的游戏:《问道》
貌似记得foreach 是只读的,不能一边遍历一边修改!改成for循环看看
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或}

我要回帖

更多关于 警告视为错误 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信