c++ - AABB碰撞检测无法检测到点之间的碰撞

因此我在3D游戏中遇到碰撞检测问题。 我正在使用AABB碰撞检测来检测sphear(玩家)与盒子之间的碰撞,我使用x,y,z来检测玩家的碰撞,并且我使用CubeMax和CubeMin(它们都是vec3)来配合盒子。 如果CubeMins x,y,z为负且CubeMaxs x,y,z为正,则工作正常,但如果CubeMins x,y,z为46.4282,-26.8889,-121.746(我的测试多维数据集),而CubeMax具有94.5561 -7.77992 -32.6565(我的测试立方体)将无法检测到碰撞,请提供帮助。

if ((Pos.x >= CubeMin.x && Pos.x <= CubeMax.x) &&
    (Pos.y >= CubeMin.y && Pos.y <= CubeMax.y) &&
    (Pos.z >= CubeMin.z && Pos.z <= CubeMax.z)) {
  ifColl = 1;
  std::cout << "collision" << std::endl;
}else {
  ifColl = 0;
  std::cout << "No collision" << std::endl;
}

Pos是玩家vec3。

转载请注明来自askonline.tech,本文标题:c++ - AABB碰撞检测无法检测到点之间的碰撞


 Top