物理引擎碰撞法向量问题

两个boxCollider2D碰撞,onBeginContact里contact.getWorldManifold().normal.y这个值表示什么?
不管碰撞体从上往 下,还是从下往上碰撞,我这里取到的y都是1。
文档上写着法向量表示从碰撞体到被碰撞体的方向,那按说从上往下碰撞,y不是应该=-1,从下往上碰撞,y=1吗?
image
image

又看了一遍文档,想要判断碰撞方向,还不能用法向量,要用相对速度?不确定,对物理引擎碰撞理解不到位

const vel1 = triangleBody.getLinearVelocityFromWorldPoint(worldManifold.points[0]);
const vel2 = squareBody.getLinearVelocityFromWorldPoint(worldManifold.points[0]);
const relativeVelocity = vel1.sub(vel2);

其实我最终的目的想知道A撞向B时,A的哪一面跟B相撞了,就这样~

我的这个方案应该不是最优解,但我认为这样做会更容易,通常我会给每个边添加一个子级的小方块(如图),这样对应边的小方块接触到了,通过小方块碰撞回调,就能找到小方块对应的边。
image