unity setactive 报错报这个错是为什么

[Unity3D]引擎崩溃、异常、警告、BUG与提示总结及解决方法
此贴会持续更新,都是项目中常会遇到的问题,总结成贴,提醒自己和方便日后检查,也能帮到有需要的同学。
若各位有啥好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 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中文显示解决方法:
/bbs/read.php?tid-78563.html
中文Mac系统下MonoDevelop乱码解决:
http://blog.csdn.net/ssihc0/article/details/6796118
4.安装空项目报错
不知道怎么地,在IOS试过一次空项目也在错误提示。大概是说什么“找不到需要的方法”。
重装一下就好了,估计是UNITY文件损坏或者安装不完全出错了。重装吧。
错误提示:MissingMethodException: Cannot find the requested
估计是破解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
个人是在加载多个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 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:
:/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, NaN}.
一般是由于游戏暂停将timescale设为0引起的,需要寻找相应用了Time.deltTime等参数的函数修改。否则会导致计算出错报空异常。
详细解决看另一篇文章:
关于NaN(Not a Number)的问题&
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官方论坛:
若没找到解决方法再搜索下。
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
解决方式:导入资源出错,大部分都是中文路径惹的祸。将资源换到无中文路径试试。如C/D盘根目录。
14.效率调优报错
错误提示:Non
matching Profiler.EndSample (BeginSample and EndSample count must
解决方式:
15.IOS下JIT错误问题、编译错误、调试错误
IOS下JIT错误是比较常见的,因为IOS不支持JIT动态编译,所以需要改为合适的AOT静态编译。
错误提示:Attempting
to JIT compile method
'System.Linq.OrderedEnumerable`1&:GetEnumerator ()' while
running with --aot-only.
解决方式:
关于使用了LINQ字典排序的错误解决方法
错误提示: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读取是不适应的。得注意打包的环境。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
本帖最后由 Jeason-L 于
20:25 编辑
这代码是公开课第六讲的jsp代码,我改用C#写,结果报错了,超级无奈,不懂哪里出错了,求大神打救啊!
using UnityE
using System.C
public class showTex : MonoBehaviour {
Texture2D oneT
Object[] allT
void OnGUI()
if(GUI.Button(Rect(0,20,100,60),"loadOneTexture"))
if(oneTexture==null)
oneTexture=(Texture2D)Resources.Load("oneTexture/Grass");
if(GUI.Button(Rect(0,140,10,60),"loadallTexture"))
if(allTexture==null)
allTexture=Resources.LoadAll("allTexture");
if(oneTexture!=null)
GUI.DrawTexture(Rect(110,20,120,120),oneTexture,ScaleMode.StretchToFill,true,0);
if(allTexture!=null)
for(var i=0;i<allTexture.Li++)
GUI.DrawTexture(Rect(110*i+120,140,120,120),allTexture,ScaleMode.StretchToFill,true,0);
这代码是公开课第六讲jsp代码,我改用C#写,结果报错了,超级无奈,求大神打救啊!
报错内容:
Assets/showTex.cs(11,31): error CS0119: Expression denotes a type', where avariable', value' ormethod group' was expected
Assets/showTex.cs(11,24): error CS1502: The best overloaded method match for `UnityEngine.GUI.Button(UnityEngine.Rect, string)' has some invalid arguments
Assets/showTex.cs(11,24): error CS1503: Argument #1' cannot convertobject' expression to type `UnityEngine.Rect'
Assets/showTex.cs(20,31): error CS0119: Expression denotes a type', where avariable', value' ormethod group' was expected
Assets/showTex.cs(20,24): error CS1502: The best overloaded method match for `UnityEngine.GUI.Button(UnityEngine.Rect, string)' has some invalid arguments
Assets/showTex.cs(20,24): error CS1503: Argument #1' cannot convertobject' expression to type `UnityEngine.Rect'
Assets/showTex.cs(24,55): error CS0030: Cannot convert type UnityEngine.Object[]' toUnityEngine.Texture2D'
Assets/showTex.cs(30,41): error CS0119: Expression denotes a type', where avariable', value' ormethod group' was expected
Assets/showTex.cs(30,29): error CS1502: The best overloaded method match for `UnityEngine.GUI.DrawTexture(UnityEngine.Rect, UnityEngine.Texture, UnityEngine.ScaleMode, bool, float)' has some invalid arguments
Assets/showTex.cs(30,29): error CS1503: Argument #1' cannot convertobject' expression to type `UnityEngine.Rect'
Assets/showTex.cs(37,49): error CS0119: Expression denotes a type', where avariable', value' ormethod group' was expected
Assets/showTex.cs(37,37): error CS1502: The best overloaded method match for `UnityEngine.GUI.DrawTexture(UnityEngine.Rect, UnityEngine.Texture, UnityEngine.ScaleMode, bool, float)' has some invalid arguments
Assets/showTex.cs(37,37): error CS1503: Argument #1' cannot convertobject' expression to type `UnityEngine.Rect'
本帖最后由 lanchong101 于
19:56 编辑
Rect(0,20,100,60); 如果英语不好建议你装一个翻译软件 有道或者金山!
allTexture=(Texture2D)Resources.LoadAll("allTexture");
LoadAll返回的是一个 Obj数组
Rect(0,20,100,60); 如果英语不好建议你装一个翻译软件 有道或者金山!
allTexture=(Texture2 ...谢谢大神
allTexture=(Texture2D)Resources.LoadAll("allTexture");
这一行是我从网上查修改方法.加上了(Texture2D) 忘记删除了
在rece前面加上new之后 现在剩下37行的错误.错在哪里呢?
GUI.DrawTexture(Rect(110,20,120,120),oneTexture,ScaleMode.StretchToFill,true,0);
GUI.DrawTexture(new Rect(110 * i + 120, 140, 120, 120), allTexture as Texture2D , ScaleMode.StretchToFill, true, 0);
必须要指定返回值 吗?
要回复问题请先或
浏览: 3624
关注: 0 人施耐德电气中国 | 全球能效管理专家 - Schneider Electric China
Schneider Electric is the global specialist in energy management and automation.
Explore our global offerings or select your country from one of our five regions.
Schneider Electric est le spécialiste mondial de la gestion de l’énergie et des automatismes.
Découvrez nos offres globales ou sélectionnez votre pays dans l’une de nos cinq régions.
Asia Pacific
North America
Latin America
Middle East and Africa
技术常见问答
&#x5728;Unity Pro&#x8f6f;&#x4ef6;&#x4e2d;&#x7528;ST&#x8&#x8a00;&#x7f16;&#x7a0b;&#x4e86;&#x8df3;&#x8f6c;&#x6307;&#x4ee4;&#xff0c;&#x5728;&#x7a0b;&#x5e8f;&#x7f16;&#x8bd1;&#x65f6;&#x59&#x7ec8;&#x62a5;&&#x7981;&#x7528;&#x8df3;&#x8f6c;&#x529f;&#x80&&#x9519;&#x8&#xff0c;&#x8fd9;&#x662f;&#x4e3a;&#x4ec0;&#x4e48;&#xff1f;&#x5982;&#x4f55;&#x89e3;&#x51b3;&#x3f;
在Unity Pro软件中用ST语言编程时,如果用到了跳转指令,则需要在软件中作相应的设置,才能正常使用跳转指令。因为在缺省状态下,跳转功能是被禁用的。具体设置方法如下:
1、首先,启动Unity Pro软件;2、点击&工具&&&项目设置&&&语言扩展&,弹出如下窗口。
3、在以上窗口中选中&允许跳转和标签(ST)&复选框即可。> [Unity3d]Security报错解决方法
[Unity3d]Security报错解决方法
junjun062600 & &
发布时间: & &
浏览:27 & &
回复:0 & &
悬赏:0.0希赛币
[Unity3d]Security报错解决办法  最近被一个问题困扰了好久,连续三天都一直在想办法解决,各种能参考的资料都看了,包括硬着头皮看全英文的官网,努力寻求解决办法,昨晚搞到凌晨深夜两点可还是失望的离开了办公室,到底是什么问题呢?我相信如果Unity3D做网络游戏或者动态加载资源的同志们都会碰到,那就是Unity3d动态加载资源然后切换到web平台会报错,关于security的一个错误,官方的解释是:,努力看看英文吧,相信会有帮助!
目的:为了Unity3D能动态加载模型资源,切换到web平台也能正常加载到场景中!
  一开始我做的方案一,就是Unity3D直接访问远程mysql数据库,但后来发现切换到web平台会报错,而且解决起来比较麻烦,也不知道是否有人解决了没,然后咨询有过网游开发经验的大牛,他说一般公司开发都是会搭建一个中间层服务器,php或者.net或者其他,通过这个中间层服务器来访问数据库并且返回打包的数据,因此就听了大牛的建议然后果断去搭建.net服务器,这个我还比较熟悉一些,之前搞过一年多的.net,然后中间层服务器搭建好了,url是x,Unity3D中通过www的方法获取aspx返回的数据库中模型的路径,关于模型我是放在额外自己新建的一个ftp服务器上,地址是,上面有一个模型,当然我已经打包成unity3d&#26684;式的了,按理的话应该是动态加载fbx的的模型资源,但是这个还有待探索中,如果有知道的同志,还望指导我一下。关于.net服务器的搭建就不多说了,当然也可以用php或者jsp。
Unity3D代码:
  using UnityE
using System.C
using System.T
public class NewBehaviourScript : MonoBehaviour
private GameO
private WWW
private string url = @&x&;
private string url1 = &;;
void Start()
void OnGUI()
if (GUI.Button(new Rect(20, 20, 100, 40), &加载&))
StartCoroutine(getURL(url));
print(&2&);
IEnumerator getURL(string url)
print(&3&);
WWW web = new WWW(url);
Encoding e1 = new ASCIIEncoding();
this.s = e1.GetString(web.bytes);
print(&web : & &#43; this.s);
print(&--&&#43;web.bytes.Length);
//截取服务器端有用的数据
print(&s:length&&#43;s.Length&#43;&url1:length:&&#43;url1.Length);
//this.s = web.
this.s = s.Substring(0,38);
print(s.Length);
StartCoroutine(getModel(s));
print(url1&#43;&|&&#43;this.s);
print(this.s.Length);
IEnumerator getModel(string str)
print(str.Length);
this.www = new WWW(str);
yield return this.
print(www.bytes.Length);
obj = GameObject.Instantiate(www.assetBundle.mainAsset) as GameO
obj.transform.position = new Vector3(0, 1, 20);
print(www.bytes.Length);
  看到这我就有点欣喜了,能够动态加载模型了,但切换到web平台就有问题了,不管怎样就是报错,有关一个Security权限的错误,然后网上查看各种资料,了解到Web Player平台有一个Security SandBox的安全策略,这个可能是为了安全性考虑的吧,配置了一下用户访问资源的一个权限。也就是要在服务器端配置一个crossdomain.xml,大体内容是:
  & xml version=&1.0& &
&!DOCTYPE cross-domain-policy SYSTEM &;&
&cross-domain-policy&
&allow-access-from domain=&*& to-ports=&*&/&
&/cross-domain-policy&
第一个“*”是指权限内的IP,*代表所有IP的客户端都有这个权限,第二个*号指服务器放开所有的端口,主要是一个843端口,通过这个端口来监视客户端的活动的。但之前我怎么配置.net服务器端都发现还是security权限报错,搞了我昨晚凌晨两点才离开办公室,后来发现我的模型资源放在远程的FTP服务器端,那个服务器端也要配置相同的权限,这样一来就没有错误了,恭喜一下自己,终于解决了困惑已久的问题!
  关于Unity3D,我们有个专门技术讨论的大群,可以进行技术交流和咨询,群号:858550 欢迎进行技术讨论,里面有不少大牛
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&}

我要回帖

更多关于 unityhelper.dll报错2 的文章

更多推荐

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

点击添加站长微信