unity3D开发之“判断两个物体是否穿插(相交)”
在unity游戏开发中可能会碰到这样的需求,就是必须知道两个物体是否有穿插现象。在unity中怎么来判断这两个物体是否有穿插呢?可能我们第一个想法就是判断一个物体TriggerStay在另个物体中,但是这样判定只能针对于有刚体并且运动的物体,那么没有刚体或者不运动的两个物体之间怎么样判断是否有穿插现象呢?
在Unity中给开发者提供了这样的方法:Physics.OverlapSphere 相交球
static function OverlapSphere (position : Vector3, radius : float, layerMask : int = kAllLayers) : Collider[]
position 参数:代表了这个相交球的位置
radius 参数:代表了这个相交球的半径大小
layerMask 参数:代表了你要检测的层
这个方法返回的是一个Collider数组,返回的是这个相交球中的所有碰撞体。
例子:
bool isStayPlank = false;
Collider[] collidedObj = Physics.OverlapSphere(hit.transform.position, 20);
foreach(Collider obj in collidedObj)
{
if(obj.tag == "ball")
{
isStayPlank = true;
break;
}
}
欢迎大家加入Unity技术交流群:3112035
———— 大红花
评论(1)