碰撞后不触发信号是什么情况
godot吧
全部回复
仅看楼主
level 8
九智绅士
楼主
我直接把小球的全部代码贴上来了,砖块有时候能正常消毁,有时候又得撞好几下,这是什么情况,应该不是速度重置问题,我速度不管它也依然有这个bug
是碰撞信号和什么冲突了吗
2025年05月27日 03点05分
1
level 8
九智绅士
楼主
还能经验+6,快来啊
2025年05月27日 03点05分
2
人类的大敌
你都MoveAndCollide了
就不用再使用信号了,你把第二张截图的_on_body_entered信号注释掉。你在第一张截图里用一个collision的变量引用了碰撞对象(好像你只是使用这个collision变量get一个法线)那你就在get法线那行代码下面加个collision.GetCollider()获得碰撞到的物体,然后在这里QueueFree就行
2025年05月27日 04点05分
九智绅士
@人类的大敌
卧槽,解决了,太完美了哥,但是为什么啊,我有点没看懂
2025年05月27日 08点05分
人类的大敌
@九智绅士
这主要是想看懂哪方面了,如果想看懂GetCollider()那只需按照之前另一贴的回复:在帮助里搜索get_collider就能找到不同类型的方法,这些方法都能返回碰撞到的物体。而如果是好奇为什么不用信号,这是因为信号只是架构上的选择(信号用来解耦)但是在项目里实现功能可以选择不同方式
2025年05月27日 08点05分
九智绅士
@人类的大敌
好好好
2025年05月27日 10点05分
level 8
九智绅士
楼主
根据大佬说法解决了,只需要强制转换一下获得碰撞体就能没bug的销毁了
2025年05月27日 08点05分
3
九智绅士
转换一下是为了用isingroup这个方法
2025年05月27日 08点05分
1