Recovery BUG演示文字描述定义宽高0.5方块A的在-0.5,0,0位置,分组为1定义宽高0.5方块B的在0.5,0,0位置,分组为1定义宽高0.5方块C的在0,0,-3位置,分组为2定义半径为0.25的胶囊D的在0,0,-3位置,分组为2定义半径为0.25的圆柱E的在0,0,-3位置,分组为2 使用shapecast方法将C目标cast到0,0,3的位置,得到返回值使用shapecast方法将D目标cast到0,0,3的位置,得到返回值使用shapecast方法将E目标cast到0,0,3的位置,得到返回值 Laya2.3的类库 返回结果是 false false falseLaya2.5的类库 返回结果是true true trueLaya2.6的Github版本同2.5,更新日志也没更新到这块所以和2.5表现一致 附图和例子附件:myLaya.zip myLaya.zip0B
NilZ 您好,这是按照你的代码所画的示意图,应该没有画错吧 做shapeCast的x的边界为-0.25 和 +0.25 而A的右边界为-0.25 B的左边界为+0.25到底这个边界的相接 在射线检测中是否为相交 我在bullet中做了测试 发现在bullet中 测试结果为相交的 所以说新版本的laya返回的结果应该是正确的 laya在2.4更新了 编译bullet的方式 老版本可能存在错误 如果我哪里说的不准确 请你指出 我们共同研究
NilZ 回复你的关于精度的问题,我在c++版bullet写的demo 精度的大小能达到小数点后16位 ,但是在laya中只能做到小数点后3位。精度laya的确做的不够好, 但是可以避免(在项目中)。当半径位0.45的时候反馈的是false,这是我测试的结果,是正确的。
NilZ 结论就是 :1.有重合边的时候,laya反馈为有碰撞和bullet(c++)一致,老版本的laya不正确。 2.检测的精度laya只有小数点后三位,bullet(c++有16位),但可以避免。