我使用射线检测台球的前进方向上是否与其他球发生碰撞,在返回的结果中有台球碰撞,但是碰撞点不在台球上而在远处的球桌位置,请问这是为啥,按照道理来说,发生了碰撞那么碰撞点应该在碰撞体的节点上啊,怎么会在其他位置。
public ray(pos: Vec3, dir: Vec3, mask: number) {
//射线发射
const outRay = new geometry.Ray(pos.x, pos.y, pos.z, dir.x, dir.y, dir.z);
const maxDistance = 100;
const queryTrigger = true;
const bResult = PhysicsSystem.instance.raycastClosest(outRay, mask, maxDistance, queryTrigger);
if (bResult) {
const results = PhysicsSystem.instance.raycastClosestResult;
return {
collider: results.collider,
distance: results.distance,
hitNormal: results.hitNormal,
hitPoint: results.hitPoint,
node: results.collider.node,
}
}
return null;
}
上面是我使用的检测方法,按照正常情况hitPoint应该是results.collider.node附近的位置的,为什么在远处的球桌位置
一般来说,这种写法用的多一点。你这个写法我也看到了