-
Creator 版本:2.3.0
-
目标平台: web
-
详细报错信息,包含调用堆栈:
-
重现方式:
-
之前哪个版本是正常的 :
-
手机型号 :
-
手机浏览器 :
-
编辑器操作系统 :
-
编辑器之前是否有其它报错 :
-
出现概率:
-
额外线索:
cc2.3.0里面动态创建带有BoxCollider3D组件的节点,怎么让BoxCollider3D的区域跟着父节点的坐标移动而移动?目前所知道的是BoxCollider3D的区域在添加到父节点的时候就已经固定了,后面父节点位置改变的时候,响应区域并不会改变。
BoxCollider3D组件添加在 prefab 的根节点,网格等资源是子节点。
在动态创建的时候是先设置的 position 再设置的 parent。
这是动态创建代码:
let card = cc.instantiate(this.cardPre); let x = beginPosX + k * 0.75; card.setPosition(x, card.position.y, card.position.z); this.handCardNode.addChild(card);
这是检测到碰撞后改变坐标的代码:
/** 射线检测 */ radiographicInspection(wP) { const ray = this.camera.getRay(wP); const r = cc.director.getPhysics3DManager().raycast(ray,'HandCard', 1000, false); cc.log(r); if (r) { let checkNode = r[0].collider.node; checkNode.setPosition(checkNode.x, checkNode.y, -0.4); } }
想要达到的效果是 BoxCollider3D 的区域也跟着父节点的坐标变化而一起改变。
demo.zip (277.5 KB)