1>编辑器不能识别脚本里面@property类型,显示为null,脚本拖不上去
是@property的类循环引用导致的,可以改变组件类型到cc.Node解决
2> Cannot read property ‘_assembler’ of null ,切换场景时出现。
在这个案例中,场景某一个子节点 onload方法里抛出了一个错误,导致后面所有的onload不能顺利执行,导致render组件未能初始化
3>使用NodePool创建对象池,第一次使用放进去再取出 触摸事件不见了,再次添加也加不上。
这个问题花了我三个小时查出来,在此公布答案希望大家不要犯。我把node节点从父节点remove了,然后put进对象池,再取出来就没了点击事件。
解决方法有2 不要remove, 在remove里clearup置位false
4>使用代码添加animation不显示
还需要添加sprite,切记切记
5>跨多层节点转换坐标. 需要先将目标节点转化为世界坐标,然后在转换成对应节点的坐标.使用api:
convertToWorldSpaceAR
convertToNodeSpaceAR
6>碰到了带物理的节点与回收池异常的问题.从回收池出来的第二次利用的节点对implus调用反应动作的异常. 一开始以为是引擎bug.然而论坛反馈问题刚写到一半,忽然想到,
会不会事情倒过来了.第一次是异常的,第二次的表现才是正确的.为了验证这个猜想,将编辑器上的相关数据改动,一看,果然,第一次使用的是编辑器上的默认值.那么,为什么在代码中改动会不生效呢.
这要怪罪于我对物理系统并不怎么熟悉的缘故.须知改动任何的collider的属性,都要apply一下.这样引擎内部会重新生成box2d碰撞盒子.
7>removeFromParent方法并不会调用节点脚本上的onDestor