const result1 = cc.director.getPhysicsManager().rayCast(point1, point2, cc.RayCastType.Closest); const result2 = cc.director.getPhysicsManager().rayCast(point2, point1, cc.RayCastType.Closest); if (result1.length === 0 || result2.length === 0) { cc.warn('无碰撞体'); return; } else{ result1.forEach(element => { if(element.collider.node.width<=11&&element.collider.node.height<=11){ element.collider.node.parent.active = false } }); result2.forEach(element => { if(element.collider.node.width<=11&&element.collider.node.height<=11){ element.collider.node.parent.active = false } }); }
时间: 2024-02-14 21:04:47 浏览: 137
Vue源码中要const _toStr = Object.prototype.toString的原因分析
这段代码是使用 Cocos Creator 引擎中的物理引擎进行射线检测,检测起点是 `point1`,终点是 `point2`。检测类型为 `cc.RayCastType.Closest`,表示只需要检测最近的碰撞体即可。
如果检测结果中没有碰撞体,那么会打印一条警告信息,并返回。否则,会遍历检测结果中的每一个碰撞体,如果该碰撞体所在的节点的宽度和高度都小于等于 11,那么会将它的父节点设置为不可见状态(`active = false`)。
需要注意的是,这段代码只对检测到的碰撞体进行了判断,如果场景中有其他节点的宽度和高度都小于等于 11,但是没有被检测到,那么它们不会被隐藏。此外,当一个节点被设置为不可见时,它的子节点也会被同时隐藏。
阅读全文