Объявление
public bool Raycast(Vector3 origin, Vector3 direction, float maxDistance = Mathf.Infinity, int layerMask = Physics.DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);Параметры
origin | Начальная точка луча в мировых координатах. |
direction | Направление луча. |
maxDistance | Максимальное расстояние, на котором луч должен проверять столкновения. |
layerMask | Маска слоя, используемая для выборочного игнорирования коллайдеров при создании луча. |
queryTriggerInteraction | Указывает, должен ли этот запрос вызывать триггеры. |
Возвращает
bool True, если луч пересекается с коллайдером, в противном случае false.
Описание
Отбрасывает луч из точки start
в направлении direction
и имеет длину maxDistance
против всех коллайдеров в сцене.
Вы можете дополнительно указать LayerMask, чтобы отфильтровать любые коллайдеры, с которыми вы не заинтересованы в создании коллизий. Указание queryTriggerInteraction
позволяет вам контролировать, будут ли коллайдеры Trigger генерировать попадание или использовать глобальные Physics.queriesHitTriggers. настройка.
В этом примере создается простой Raycast, проецирующийся вперед от текущего положения объекта на 10 единиц.
using UnityEngine;
public class ExampleClass : MonoBehaviour
{
void FixedUpdate()
{
Vector3 fwd = transform.TransformDirection(Vector3.forward);
if (Physics.Raycast(transform.position, fwd, 10))
print("There is something in front of the object!");
}
}
Объявление
public bool Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo, float maxDistance = Mathf.Infinity, int layerMask = Physics.DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);Параметры
origin | Начальная точка луча в мировых координатах. |
direction | Направление луча. |
hitInfo | Если возвращено значение true, hitInfo будет содержать дополнительную информацию о том, где произошло столкновение с коллайдером. (Смотрите так же: RaycastHit). |
maxDistance | Максимальное расстояние, на котором луч должен проверять столкновения. |
layerMask | Маска слоя, используемая для выборочного игнорирования коллайдеров при создании луча. |
queryTriggerInteraction | Указывает, должен ли этот запрос вызывать триггеры. |
Возвращает
bool True, если луч пересекается с коллайдером, в противном случае false.
Описание
Отбрасывает луч из точки start
в направлении direction
и имеет длину maxDistance
против всех коллайдеров в сцене.
Этот метод не создает мусора.
using UnityEngine;
public class RaycastExample : MonoBehaviour
{
void FixedUpdate()
{
RaycastHit hit;
if (Physics.Raycast(transform.position, -Vector3.up, out hit))
print("Found an object - distance: " + hit.distance);
}
}
Объявление
public int Raycast(Vector3 origin, Vector3 direction, RaycastHit[] raycastHits, float maxDistance = Mathf.Infinity, int layerMask = Physics.DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);Параметры
origin | Начальная точка и направление луча. |
direction | Направление луча. |
raycastHits | Буфер для хранения обращений. |
maxDistance | Максимальное расстояние, на которое может попасть rayhit от начала луча. |
layerMask | Маска слоя, используемая для выборочного игнорирования коллайдеров при создании луча. |
queryTriggerInteraction | Количество обращений, сохраненных в буфере results . |
Возвращает
int True, если луч пересекается с коллайдером, в противном случае false.
Описание
Отбрасывает луч из точки start
в направлении direction
и имеет длину maxDistance
против всех коллайдеров в сцене.
Этот метод не создает мусора.