假设节点A和B在同一层,我在A的脚本注册了一个全局碰撞,然后动态生成了一个C节点在A下面,D节点在B下面,C和D碰撞,我的理解selfCollider应该是指C吧,为什么打印出来的是D呢?而且更奇怪的是,有时候selfCollider又是C。。我现在傻眼了,求大佬扶我一下
大佬帮我看一下,C和D是用prefab生成的,allSkillArea.ts挂在allSkillArea节点上,我打算把所有的技能都放到allSkillArea节点,然后根据碰撞的selfCollider识别技能id,现在让我懵逼的是这样写导致回调的selfCollider不确定(按照这个思路去实现技能的识别有没有问题?或者还有其他的办法?)
手动置顶,蹲大佬指点
你的C和D是不是都注册了碰撞事件。
C和D都没有注册碰撞事件,C的Enabled Contact Listener打了勾。D的没有打,D是勾了Sensor
你把D上面的刚体组件去掉试试。
不能去掉哇,去掉刚体碰撞检测就没有了哇
我记得碰撞双方有一个带有刚体就行了。
可是我刚才把刚体去掉后连碰撞回调都不触发了
深夜蹲大佬帮俺分析
那就不要弄全局碰撞检测啊,检测C碰撞就获取C上面的collider.on,检测D就获取D的collider.on,这样C碰撞的回调selfCollider就是C,D碰撞回调selfCollider就是D,清清楚楚的多好。
1赞
有道理,回头我打算就这样做。不过我还是有疑问,全局碰撞是什么样的场景下会用到呢?