Box2d B2Body/B2Fixture是否可以设置为被AABB查询或光线投射忽略?

Box2d B2Body/B2Fixture是否可以设置为被AABB查询或光线投射忽略?,box2d,Box2d,我正在构建一个2-D自上而下的游戏,其中我需要有一个用于寻路的区域动态图 我正在考虑在感兴趣的区域上覆盖一个由Box2D实体(圆或正方形)组成的网格作为“传感器”。这些对象都是静态实体,并标记为传感器,因此没有碰撞响应,但检测到碰撞,我可以使用此(碰撞回调)将导航图中的节点标记/取消标记为被占用,以便实体可以在它们周围导航 移动的实体仍将进行光线投射和AABB查询,作为其与环境交互的一部分(寻找特定事物等)。我希望不要让他们的查询与传感器网络相交 虽然我当然可以在实体用来过滤传感器的侦听器对象中

我正在构建一个2-D自上而下的游戏,其中我需要有一个用于寻路的区域动态图

我正在考虑在感兴趣的区域上覆盖一个由Box2D实体(圆或正方形)组成的网格作为“传感器”。这些对象都是静态实体,并标记为传感器,因此没有碰撞响应,但检测到碰撞,我可以使用此(碰撞回调)将导航图中的节点标记/取消标记为被占用,以便实体可以在它们周围导航

移动的实体仍将进行光线投射和AABB查询,作为其与环境交互的一部分(寻找特定事物等)。我希望不要让他们的查询与传感器网络相交


虽然我当然可以在实体用来过滤传感器的侦听器对象中使用usertags和过滤,但我想知道在Box2D中是否已经有一种方法可以使AABB/Ray Cast查询忽略某些装置?

此检查通常最好在查询回调中完成。b2RayCastCallback和b2QueryCallback都有一个ReportFixture函数,它为您提供了一个fixture,因此您可以检查是否要忽略它


(我不确定你在问题的最后一段是否就是这个意思……如果是的话,那么我猜答案就是‘不’:)

我不认为这一段会有免费午餐……如果让系统为我过滤这些查询的能力已经存在,那就太方便了。不用担心…我可以在里面工作。谢谢