public static bool BoxCast(Vector3 center, Vector3 halfExtents, Vector3 direction, out RaycastHit hitInfo, Quaternion orientation = Quaternion.identity, float maxDistance = Mathf.Infinity, int layerMask = DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);
center:盒体的中心
halfExtents:盒体各个维度大小的一半
direction:投射盒体的方向
hitInfo:若发生碰撞,该变量用来保存碰撞信息
orientation:盒体的旋转
maxDistance:投射的最大长度(=0时表示只计算盒体内投射,>0时表示从盒体的边缘向drection投射的距离)
layerMask:层遮罩,用于在投射胶囊体时有选择地忽略碰撞体
queryTriggerInteraction:指定该查询是否应该命中触发器
详情如下图:
需要注意的是由于图中的红色box会根据具体的碰撞位置移动,所以实际碰撞区域应为该红色box沿红线移动直至与原物体结合所形成的立方体区域