private bool IsObjectOccluded(GameObject obj)
{
// 获取摄像机到物体的方向
Vector3 directionToTarget = obj.transform.position - Camera.main.transform.position;
// 发射射线
Ray ray = new Ray(Camera.main.transform.position, directionToTarget);
RaycastHit hit;
// 射线检测是否有其他碰撞器位于射线路径上
if (Physics.Raycast(ray, out hit, directionToTarget.magnitude))
{
// 如果射线击中的物体不是目标物体,则表示目标物体被遮挡
if (hit.collider.gameObject != obj)
{
return true;
}
}
return false;
}
Unity检测物体是否被遮挡
最新推荐文章于 2024-04-26 18:05:13 发布