[LayaAir 1.0]SphereCollider和MeshCollider碰撞检测的bug
SphereCollider去碰撞MeshCollider时,代码实现如下:
var meshCollider=other;
if (Collision.sphereContainsBox(this.boundSphere,meshCollider._boundBox)!==/*laya.d3.math.ContainmentType.Disjoint*/0){
var positions=meshCollider.mesh._positions;
for (var i=0,n=positions.length;i < n;i++){
if (Collision.sphereContainsPoint(this.boundSphere,positions[i])===/*laya.d3.math.ContainmentType.Contains*/1)
return true
}
return false;
}else {
return false;
}
break ;
上面代码中的
var positions=meshCollider.mesh._positions;
这个poistions是几何体初始化时的定点坐标,而不是根据几何体位置计算出来的当前坐标。所以SphereCollider和MeshCollider碰撞时,会不生效。
var meshCollider=other;
if (Collision.sphereContainsBox(this.boundSphere,meshCollider._boundBox)!==/*laya.d3.math.ContainmentType.Disjoint*/0){
var positions=meshCollider.mesh._positions;
for (var i=0,n=positions.length;i < n;i++){
if (Collision.sphereContainsPoint(this.boundSphere,positions[i])===/*laya.d3.math.ContainmentType.Contains*/1)
return true
}
return false;
}else {
return false;
}
break ;
上面代码中的
var positions=meshCollider.mesh._positions;
这个poistions是几何体初始化时的定点坐标,而不是根据几何体位置计算出来的当前坐标。所以SphereCollider和MeshCollider碰撞时,会不生效。
没有找到相关结果
已邀请:
要回复问题请先登录
2 个回复
Aar0n
赞同来自:
NothingSerious
赞同来自:
var meshCollider=other;
鬼知道这个other代表啥,我们不想去猜!