Estoy usando Physics2D.BoxCast en Unity (2019.4.19f1).
Tengo un colisionador 2D en posición == (0,0) con escala == (1,1)
Luego llamo a Physics2D.BoxCast:
var hit = Physics2D.BoxCast(new Vector2(0, 2), new Vector2(1, 1), 0, new Vector2(0, -1)); Es un Box Ray Cast como el de la siguiente foto:

Tengo un hit devuelto.
Pero hit.distance == 0.9950001, que se supone que es 1.
Supongo que puede haber alguna inexactitud en Physics2D.BoxCast. Pero no tengo idea de cuánto puede ser la inexactitud.
Luego realizo una búsqueda y encuentro que "Desplazamiento de contacto predeterminado" puede estar relacionado con mi problema.
Cambio "Configuración del proyecto → Physics2D → Desplazamiento de contacto predeterminado" a 0.001 (el valor predeterminado es 0.01).
Ejecute el código de nuevo. Pero ahora obtengo hit.collider == null.
Ahora estoy más confundido acerca de Physics2D.BoxCast.
Puede ser útil aprender algo sobre cómo funciona Physics2D.BoxCast. Pero no se donde encontrarlos.
Agregado 2021.3.1
Hice varios experimentos sobre "DefaultContactOffset".( link )
Los resultados del experimento muestran que:
En realidad, no conozco Physics2D.BoxCast, pero por lo que entiendo, solo mueve un cuadro a su objetivo a una "velocidad". Ahora hice cálculos similares en opengl y cualquier colisión como esta usando una velocidad a lo largo del tiempo dará como resultado este comportamiento. No puede esperar obtener un resultado 100% exacto. imagina cada cuadro que mueves el cuadro rojo 5 puntos en lugar de una pequeña escala. Su cuadro rojo simplemente saltaría sobre el cuadro blanco y no obtendría un resultado de éxito.
Ahora Internet dice "Reducir el desplazamiento de contacto predeterminado puede significar que las colisiones no tienen suficiente búfer para funcionar correctamente". Así que supongo que Physics2D.BoxCast solo verifica si 2 objetos van a colisionar y no si están colisionando, lo que explicaría por qué. obtienes un golpe nulo cuando haces que el desplazamiento sea tan pequeño.
Editar: Este fue un comentario pero fue demasiado largo.