Unity 6.3
0 онлайн 80 гостей 3 в системе
Вход

PhysicsScene.Raycast

Declaration

public bool Raycast(Vector3 origin, Vector3 direction, float maxDistance = Mathf.Infinity, int layerMask = Physics.DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);

Параметры

Параметр Описание
происхождение Начальная точка луча в мировых координатах.
направление Направление луча.
maxDistance Максимальное расстояние, на котором луч должен проверять столкновения.
layerMask Маска слоя Маска слоя, которая используется для выборочного фильтрования коллайдеров, рассматриваемых при создании луча.
queryTriggerInteraction Указывает, должен ли этот запрос вызывать триггеры.

Возвращаемое значение

логическое True, если луч пересекается с Collider, в противном случае false.

Описание

Отправляет из точки originв направлении directionлуч длиной maxDistanceна все коллайдеры в Scene.

Вы можете по желанию предоставить LayerMask, чтобы отфильтровать все Коллайдеры, с которыми вы не заинтересованы в создании столкновений. queryTriggerInteraction позволяет вам управлять тем, генерируют ли коллайдеры Trigger попадание, или использовать глобальное Physics.queriesHitTriggers установка.

Этот пример создает простой Raycast, проецирующий вперед от позиции текущего положения объекта, расширяя на 10 единиц.

using UnityEngine;

public class Example : MonoBehaviour { void FixedUpdate() { // Get the current PhysicsScene PhysicsScene physicsScene = gameObject.scene.GetPhysicsScene();

// Define ray direction and origin Vector3 origin = transform.position; Vector3 direction = transform.TransformDirection(Vector3.forward);

// Max ray distance float maxDistance = 10f;

// RaycastAll in the current physics scene RaycastHit[] hits = new RaycastHit[10]; // Pre-allocate for performance int hitCount = physicsScene.Raycast(origin, direction, hits, maxDistance);

if (hitCount > 0) { Debug.Log($"Detected {hitCount} hit(s) in front of the object:"); for (int i = 0; i < hitCount; i++) { Debug.Log($"Hit {i}: {hits[i].collider.name} at {hits[i].point}"); } } } }

Declaration

public bool Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo, float maxDistance = Mathf.Infinity, int layerMask = Physics.DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);

Параметры

Параметр Описание
происхождение Начальная точка луча в мировых координатах.
направление Направление луча.
hitInfo Если вернётся true, hitInfo будет содержать больше информации о месте удара коллайдера. (Дополнительные ресурсы: RaycastHit).
maxDistance Максимальное расстояние, на котором луч должен проверять столкновения.
layerMask Маска слоя Маска слоя, которая используется для выборочного фильтрования коллайдеров, рассматриваемых при создании луча.
queryTriggerInteraction Указывает, должен ли этот запрос вызывать триггеры.

Возвращаемое значение

логическое True, если луч пересекается с Collider, в противном случае false.

Описание

Отправляет из точки originв направлении directionлуч длиной maxDistanceна все коллайдеры в Scene.

Этот метод не генерирует мусора.

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); } }

Declaration

public int Raycast(Vector3 origin, Vector3 direction, RaycastHit[] raycastHits, float maxDistance = Mathf.Infinity, int layerMask = Physics.DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);

Параметры

Параметр Описание
происхождение Начальная точка и направление луча.
направление Направление луча.
raycastHits Буфер для хранения запросов.
maxDistance Максимальное расстояние, на котором может находиться удар по лучу от начала луча.
layerMask Маска слоя Маска слоя, которая используется для выборочного фильтрования коллайдеров, рассматриваемых при создании луча.
queryTriggerInteraction Количество запросов, хранящихся в буфере results.

Возвращаемое значение

инт True, если луч пересекается с Collider, в противном случае false.

Описание

Отправляет из точки originв направлении directionлуч длиной maxDistanceна все коллайдеры в Scene.

Этот метод не генерирует мусора.