Version: 2017.3
public bool SweepTest (Vector3 direction, out RaycastHit hitInfo, float maxDistance= Mathf.Infinity, QueryTriggerInteraction queryTriggerInteraction= QueryTriggerInteraction.UseGlobal);

Parámetros

direction La dirección en la cual barrer el rigidbody.
hitInfo Si true se devuelve, hitInfo contendrá más información acerca de dónde el collider ha golpeado (See Also: RaycastHit).
maxDistance La longitud del barrido.
queryTriggerInteraction Especifica si esta consulta debería golpear Triggers.

Valor de retorno

bool True cuando el barrido del rigidbody intersecta cualquier collider, de lo contrario false.

Descripción

Prueba si un rigidbody colisiona con cualquier cosa, si se moviera a través de la escena.

Tests if a rigidbody would collide with anything, if it was moved through the scene. This is similar to doing a Physics.Raycast for all points contained in any of a Rigidbody's colliders and returning the closest of all hits (if any) reported. This is useful for AI code, say if you need to know that an object would fit through a gap without colliding with anything.

Tenga en cuenta que esta función sólo funciona cuando un tipo de collider primitivo (esfera, cubo o cápsula) o un mesh convexo se une al objeto rigidbody - los colliders de mesh cóncavo no funcionarán, aunque pueden detectarse en la escena por el barrido.

See Also: Physics.SphereCast, Physics.CapsuleCast, Rigidbody.SweepTestAll.

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { public float collisionCheckDistance; public bool aboutToCollide; public float distanceToCollision; public Rigidbody rb;

void Start() { rb = GetComponent<Rigidbody>(); }

void Update() { RaycastHit hit; if (rb.SweepTest(transform.forward, out hit, collisionCheckDistance)) { aboutToCollide = true; distanceToCollision = hit.distance; } } }