【unity】【NGUI】当把挂在比如UILabel之类NGUI组件的对象对象池化的时候,出现各种问题的原因分析
来源:互联网 发布:网络suv有啥好处和坏处 编辑:程序博客网 时间:2024/06/05 11:48
关键词: UIWidget 中的 OnUpdate () 方法。
很多时候,我们在制作对象池,尤其是3d对象池的时候,会使用一个GameObject父节点来挂载对象池中的所有空闲对象(便于管理)。
最近我就遇到一个问题,当出于优化考虑,我把所有生物头顶的文字内容对象,全部对象池化的时候,出现了一种奇怪的现象。
当怪物死亡,即将删除的时候,我会将其头顶的文字对象移回对象池的父节点之下。而这个时候很诡异的,对象池的父节点竟然不翼而飞到了怪物的节点之下。
最终导致怪物删除的时候,将我的对象池也删除了。
经过排查,发现我的各种类型的对象池中,只有挂载了UILabel的对象的对象池才会出现这个问题。
于是我明确,这个问题一定是发生在NGUI中。
经过排查,终于发现问题。在基类UIWidget 中,当其发现自身的Tranform.parent发生变化时,会去检查其上层节点中是否有UIPanel组件(因为NGUI的机制中渲染是基于UIPanel来渲染的),不论你是否激活了这个UIWidget组件,该机制都会生效。
如果发现上层节点中全部都没有UIPanel组件,NGUI会针对父节点进行相应的处理,就导致了我遇到的这种情况。
解决方案是,在这类对象池的父节点上添加一个UIPanel组件。
阅读全文
0 0
- 【unity】【NGUI】当把挂在比如UILabel之类NGUI组件的对象对象池化的时候,出现各种问题的原因分析
- [Unity&NGUI&对象]怎么把按钮自身 的 对象 传递给另外一个脚本对象
- 【Unity】NGUI出现的问题,Popup List下拉菜单问题
- unity的ngui的字体变形问题
- Unity导入NGUI遇到的问题
- 关于NGUI中Label对象的获取
- NGUI中对象的动态移动
- NGUI的实例化问题
- (Unity)NGUI 按钮的禁用
- Unity NGUI Tween的用法
- Unity--ngui的UIEventTrigger使用
- 【Unity】NGUI的渲染原理
- NGUI的显示问题
- Unity-NGUI组件UICenterOnChild使对象在UIDarggablePanel居中显示
- Unity-NGUI组件UICenterOnChild使对象在UIDarggablePanel居中显示
- NGUI的核心组件UICamera
- Unity中NGUI出现边缘线条的解决办法
- 【Unity&NGUI】查找对象并改变颜色的几种方式
- 设计模式
- 安卓工具类1——像素PX和dp互相转换的方法(获取手机屏幕尺寸PX)
- 电源芯片选择
- jQuery-AJAX提交表单
- springmvc+shiro+maven 实现登录认证与权限授权管理
- 【unity】【NGUI】当把挂在比如UILabel之类NGUI组件的对象对象池化的时候,出现各种问题的原因分析
- NOI 2005(BZOJ 1415)聪聪和可可
- 阿里云服务器部署环境搭建
- java 守护线程
- Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询
- python 生成诸如A001 A002 ... A100这样的序列
- 阿里云移动测试平台使用教程
- Ubuntu 16.04上安装Caffe
- Tomcat简单介绍