在Unity中,可以从一个点向一个方向发射虚拟球体,指定球体半径、投射长度。

在发射轨迹中与其他物体发生碰撞时,它将终止,并返回碰撞信息。

接口

Physics.SphereCastAll

var screenPos = Input.mousePosition;
// 触碰点的世界坐标,距离摄像机5米的距离
var worldPos = Camera.main.ScreenToWorldPoint(new Vector3(screenPos.x, screenPos.y, 5));
// 摄像机的世界坐标
var camPos = Camera.main.transform.position;
// 球体半径
var radius = 0.25f;
// 投射长度
var lineLen = 100;
RaycastHit[] hits = Physics.SphereCastAll(camPos, radius, worldPos - camPos, lineLen);
if(hits.Length > 0)
{
	if(hits[0].collider.gameObject.tag == "dddd")  //用layer也可以//
	{
	
	}
}

 

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐