Quantcast
Channel: Cocos中文社区 - 最新主题
Viewing all articles
Browse latest Browse all 88942

刚体 和 节点 以及 触发器之间的神奇的bug反馈。

$
0
0

@xiayangqun 写道:

今天使用刚体的时候又遇到一个神奇的bug。经过我的反复思考终于发现了规律,

1.首先我们来看这样子一个节点,这是一个子弹,我在这个子弹的节点上加上了一个BoxCollider组件(无rigidRody),然后在update里不断对这个节点 setPostion()。然后利用这个节点上的触发器来做碰撞,是否撞击到了敌人。运行起来是正常的的。也就是说我的这个子弹上的触发器是随着子弹这个节点的位置的变化而实时的变化到了当前视觉上的位置的。

然后我们再来看这样子一个节点。


当我直接设置父节点的速度(birdPlayer节点)比如说是(10 ,0, 0)让它朝向右边匀速运动的时候。可以会看到这个节点确实是整体的朝向右边移动的,但是我利用子节点上的(collider)碰撞器来做碰撞检测的时候,却感觉这个碰撞器并没有随着节点的移动而移动,这个碰撞器还是停留再原地一样。当我手动对 birdPlayer setPosition()的时候,这个collider上的碰撞器才真正的飞到正确的位置。

结论

当你对一个节点手动的调用 setPostion, setRotation之类的函数的时候,这个节点以及子节点上碰撞器会正确的工作,但是如果一个节点的位置是由物理世界改变的时候,如例子中,节点一直往右走是物理规则导致的他往右走,而不是我明确的setPosition的时候,这个节点下的子节点上的碰撞器(无rigidBody)就不能正确的工作了。

引擎1.0.3版本
cannon.js

帖子: 1

参与者: 1

阅读整个主题


Viewing all articles
Browse latest Browse all 88942

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>