raycast method

  1. @override
RaycastHit? raycast(
  1. Ray ray, {
  2. double maxDistance = double.infinity,
  3. int layerMask = 0xFFFFFFFF,
  4. bool includeFixed = true,
  5. bool includeKinematic = true,
  6. bool includeDynamic = true,
  7. bool includeTriggers = false,
})
override

Implementation

@override
RaycastHit? raycast(
  Ray ray, {
  double maxDistance = double.infinity,
  int layerMask = 0xFFFFFFFF,
  bool includeFixed = true,
  bool includeKinematic = true,
  bool includeDynamic = true,
  bool includeTriggers = false,
}) {
  RaycastHit? best;
  for (final collider in _colliders) {
    if (!_passesFilters(
      collider,
      layerMask: layerMask,
      includeFixed: includeFixed,
      includeKinematic: includeKinematic,
      includeTriggers: includeTriggers,
    )) {
      continue;
    }
    final hit = rayHitsShape(
      ray,
      collider.shape,
      collider.worldPose,
      maxDistance,
    );
    if (hit == null) continue;
    if (best == null || hit.distance < best.distance) {
      best = _wrapHit(collider, hit);
    }
  }
  return best;
}