位置: 编程技术 - 正文

【Unity3d】疑难杂症解决之系统报错:Supplied NxActorDesc is not valid. createActor returns NULL(游戏unity报错)

编辑:rootadmin

推荐整理分享【Unity3d】疑难杂症解决之系统报错:Supplied NxActorDesc is not valid. createActor returns NULL(游戏unity报错),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:unity相关问题,unity问题大全,unity解决方案,unity问题大全,unity游戏出错,unity问题大全,unity问题大全,unity相关问题,内容如对您有帮助,希望把文章链接给更多的朋友!

最近用Unity3d开发的游戏项目忽然频频报错:

Supplied NxActorDesc is not valid. createActor returns NULL.

按照csdn的搜索结果:

NxActorDesc is not valid. createActor returns NULL.Actor::updateMassFromShapes: Can't compute mass from shapes: must have at least one non-trigger shape!通过在网上搜索,得知第一个错误其实是PhysX引擎的报错。显然Unity使用了PhysX作为物理引擎。第二个报错说的是无法通过形状计算质量,看来也是物理方面的错误。目前这两个错误的具体程序原因未知,但试验发现这和NGUI对象上挂载的BoxCollider形状有关。以下方法可以很容易地重现这两个错误(注意以下步骤都是在编辑状态下,不用播放):在Unity编辑器中创建一个空场景。在菜单栏中点击NGUI -> Create -> 2D UI,创建出一个UI Root。选中刚创建的UI Root,在菜单栏中点击NGUI -> Create -> Panel,在UI Root之下创建出一个Panel孩子。选中刚创建的Panel,在菜单栏中点击NGUI -> Create -> Widget,在UI Root之下创建出一个Widget孩子。选中刚创建的Widget,在它身上挂载一个Box Collider。关键的地方来了:不要勾选Box Collider的Is Trigger属性;设置Box Collider的大小——x和y都设为正数,但z设为负数;另外将Widget的local scale设为(0, 0, 0)。选中Panel,将其隐藏(相当于SetActive(false)),这时就会报“Supplied NxActorDesc is not valid. createActor returns NULL.”。再把Panel打开(相当于SetActive(true)),就会报“Actor::updateMassFromShapes: Can't compute mass from shapes: must have at least one non-trigger shape!”。  如果研究过NGUI内部原理,就会知道NGUI内部会强制给每个Panel挂载一个刚体(Rigidboy)。这是因为在Unity中,没有刚体的碰撞体(Collider)属于静态碰撞体,而静态碰撞体的移动会触发物理引擎中大量的性能开销。(见这篇Unity文档,里面提到“Colliders can be added to an object without a Rigidbody component to create floors, walls and other motionless elements of a scene. These are referred to as static colliders. In general, you should not reposition static colliders by changing the Transform position since this will impact heavily on the performance of the physics engine.”。)恐怕是刚体和碰撞体之间的交互出了问题。  一种猜测是:刚体的质量中心是由刚体上各个碰撞体的形状计算出来的(见官方文档对Rigidbody.centerOfMass的说明)。如果碰撞体的形状不正常,那可能就无法计算出质量中心,物理引擎会报错;或者计算出的质量中心就可能是一个非法的数。后一种情况可能还会影响NGUI的触屏检测。有一次我们某个界面上挂载BoxCollider的按钮出bug,点击之后毫无反应,甚至连触摸反馈动画也没有。我本想在UICamera下断点,看看是谁截住了OnClick消息,却发现连UICamera都没感知到触屏。研究了很久才发现那个按钮的BoxCollider的z尺寸设成了负数,调试中我发现那个按钮所在Panel的刚体质量中心是(NaN, NaN, NaN)。将那个BoxCollider的尺寸改成正数后,bug就消失了。(不过后来我也研究过,并不是Box Collider的尺寸为负就一定会导致该bug,可能要正好在某些数&#;下导致刚体质量中心为(NaN, NaN, NaN)才行。)  所以目前的结论就是:如果在NGUI中遇到了物理引擎的报错,或者UICamera没感知到触屏,则检查一下各个BoxCollder的尺寸是否正常。这个尺寸会受到多个因素的影响:包括Box Collider的size参数,还有GameObject(包括自己和祖宗)的scale。

【Unity3d】疑难杂症解决之系统报错:Supplied NxActorDesc is not valid. createActor returns NULL(游戏unity报错)

按以上文章进行全局Prefab搜索,并没有找到scale为0的Prefab.很灰心.

今天一点一点地排查,终于查出来,原来还是Collider的问题:

由于我们开发的游戏中使用了新手引导,当新手引导出来后,其它按钮不能点击,只能点指定的按钮

那么我们就把其它按钮的Collider的size设置为(0,0,0), 退出引导后,再还原到原来的size, 那么size为0的Collider

就会引起Unity的报错...解决方案是禁用Collider时, 把center修改为一个很大的数&#;, 退出引导还原Collider时,

把center恢复给Collider就行了.

linux下安装unity web player的方法 作者原创,复制转载请注明出处

【Unity3d】在Unity中播放视频 不解释,上代码privatevoidPlayMovie(stringfilename,boolcancel){#ifUNITY_IPHONE||UNITY_ANDROIDFullScreenMovieControlModemode=FullScreenMovieControlMode.Hidden;if(cancel){mode=FullScreenMovieControl

Unity使用Shader控制物体材质的透明度(Lambert版和非光照版) prename=codeclass=cppShaderCustom/MyShader_Two{Properties{_MainTex(Base(RGB),2D)=white{}//接收的纹理_TransVal(TransparencyValue,Range(0,1))=1//透明度的值_ColorTint(Shine(RGB),color)=(1,1,1,1

标签: 游戏unity报错

本文链接地址:https://www.jiuchutong.com/biancheng/369263.html 转载请保留说明!

上一篇:UnityShader实例03:边缘光材质(unity de)

下一篇:linux下安装unity web player的方法(ubuntu20安装unity桌面)

  • 递延所得税资产和递延所得税负债
  • 去年多计提的工资今年直接冲掉当期费用,不调增可以吗
  • 计提税费表格
  • 投资性房地产出售时公允价值变动损益
  • 椅子坐垫有用吗
  • 在建工程应交税费会计分录
  • 月饼礼盒发票
  • 营改增后房地产公司税种及税率
  • 转账支票背书转让样本
  • 收到客户定金账务怎么做
  • 可交换债券与可转换债券的区别在于
  • 以股权投资入股放高利贷违法吗
  • 折扣折让 红字发票账务处理
  • 残保金超比例奖励
  • 开了专票不报销犯法吗
  • 物业公司前期工作计划
  • 租房提前退租违约金国家标准
  • 什么是前期差错
  • 水利印花税计算公式
  • 机打发票丢失如何处理报销
  • 建筑企业1%承包承租个人所得税的会计分录
  • 房产税税率2023税率表
  • 扶贫贷款主要指
  • 企业注销时资本公积怎么处理
  • 预收账款长期挂账如何处理
  • 生育津贴支付方式
  • 员工个税需要计提吗现在
  • 小企业会计准则会计科目表
  • 净现值是否可行
  • 商事账簿编制的一般规则是什么
  • 员工报销款应该挂什么科目
  • 高新技术研发的会议有哪些
  • 公司清理固定资产怎么开票
  • 鸿蒙2.0正式版升级
  • 如何解决windows蓝屏问题
  • Mac SIP系统完整性保护开启及关闭的方法介绍
  • 工资薪金支出税前扣除
  • 国有资产无偿划转协议
  • 淘宝前端用什么写的
  • thinkphp import
  • vue实战开发项目视频
  • 盒子模型的概念
  • java后端代码例子
  • 双抬头发票认证
  • wordpress site
  • 数论电子书下载
  • 在Python中如何求坐标中的任意两个点的距离
  • 小规模差额征税的税率是3%还是5%
  • 长期股权投资处置损失计入什么科目
  • 企业应付账款科目的借方余额反映的是
  • 小额转账汇款服务最多转账多少钱
  • 以无形资产换入固定资产发生的净损益
  • 增值税怎么开
  • 低值易耗品如何摊销
  • 物业公司代收代付租金要开发票吗
  • 银行利息 税
  • 非营利组织注册资金可以用吗
  • 计提时的会计分录
  • sqlite迁移到mysql脚本的方法
  • mysql索引命令
  • Apple Watch怎么解绑ID
  • windows server 2008 r2 iis
  • window7 aero
  • win7 64位系统只有搜狗浏览器可以打开网页其他浏览器打不开的故障原因及解决方法
  • linux命令统计代码行数
  • pascl32.exe - pascl32是什么进程 有什么用
  • 网卡破解
  • 在linux操作系统中,/etc/rc.d/init.d
  • windows 10 mobile--移动版
  • Win10预览版更新弹窗如何关闭
  • linux sh
  • linux中ftp命令的用法
  • android开发环境的搭建步骤
  • matplotlib pypi
  • node.js mac
  • java性能调优实战 网盘
  • [置顶] 快来貌相则不达很好skmzx5
  • jQuery给div,Span, a ,button, radio 赋值与取值
  • 国税地税征管体制改革方案
  • 公司出租非住宅税种
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设