public int Raycast (Vector2 direction, RaycastHit2D[] results, float distance= Mathf.Infinity, int layerMask= Physics2D.AllLayers, float minDepth= -Mathf.Infinity, float maxDepth= Mathf.Infinity);
public int Raycast (Vector2 direction, ContactFilter2D contactFilter, RaycastHit2D[] results, float distance= Mathf.Infinity);

Parámetros

directionVector que representa la dirección del rayo.
resultsArreglo para recibir resultados.
distanceDistancia máxima sobre el cual se emite el rayo.
layerMaskFiltro para revisar objetos solamente en capas especificas.
minDepthSolamente incluye objetos con una coordenada Z (profundidad) mayor que este valor.
maxDepthSolamente incluye objetos con una coordenada Z (profundidad) menor que este valor.
contactFilterFilter results defined by the contact filter.

Valor de retorno

int La cantidad de resultados retornados.

Descripción

Casts a ray into the Scene that starts at the Collider position and ignores the Collider itself.

Esta función es similar a la función [[Physics2D::RaycastNonAlloc]] y de la misma manera, los resultados se devuelven en la matriz suministrada. El valor de retorno de número entero es el número de objetos que intersectan el rayo (posiblemente cero) pero la matriz de resultados no se redimensionará si no contiene suficientes elementos para informar de todos los resultados. La importancia de esto es que no se asigna memoria a los resultados y, por lo tanto, se mejora el rendimiento de la recolección de basura cuando se realizan frecuentemente raycasts.

Overloads of this function that use contactFilter filters the results by the options available in ContactFilter2D.

Además, esto también detectará otros Collider(s) al comienzo del rayo. En este caso, el rayo comienza dentro del Collider y no intersecta la superficie del Collider. Esto significa que no se puede calcular la colisión normal, en cuyo caso la colisión normal devuelta se ajusta a la inversa del vector de rayos que se está probando. Esto se puede detectar fácilmente porque estos resultados siempre están en una fracción de cero de RaycastHit2D.

Mirar también: Clase LayerMask, clase RaycastHit2D, [[Physics2D::RaycastNonAlloc]], [[Physics2D::AllLayers]], [[Physics2D::IgnoreRaycastLayer]], [[Physics2D::raycastsHitTriggers]].


public int Raycast (Vector2 direction, ContactFilter2D contactFilter, List<RaycastHit2D> results, float distance= Mathf.Infinity);

Parámetros

directionVector que representa la dirección del rayo.
contactFilterFilter results defined by the contact filter.
resultsList to receive results.
distanceDistancia máxima sobre el cual se emite el rayo.

Valor de retorno

int La cantidad de resultados retornados.

Descripción

Casts a ray into the Scene that starts at the Collider position and ignores the Collider itself.

This function is similar to the [[Physics2D::RaycastNonAlloc]] function and in the same way, the results are returned in the supplied list. The integer return value is the number of Colliders that intersect the ray (possibly zero). The results list will be resized if it doesn't contain enough elements to report all the results. This prevents memory from being allocated for results when the results list does not need to be resized, and improves garbage collection performance when the query is performed frequently.

Additionally, this will also detect other Collider(s) at the start of the ray. In this case the ray is starting inside the Collider and doesn't intersect the Collider surface. This means that the collision normal cannot be calculated in which case the collision normal returned is set to the inverse of the ray vector being tested. This can easily be detected because such results are always at a RaycastHit2D fraction of zero.

See Also: RaycastHit2D class.

Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961