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

Physics.SphereCast

Declaration

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

Параметры

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

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

логическое True, если сфера пересекает любой коллайдер, в противном случае false.

Описание

Бросает сферу вдоль луча и возвращает подробную информацию о том, что было поражено.

Это полезно, когда Raycast не дает достаточной точности, потому что вы хотите узнать, сможет ли объект определенного размера, например, персонаж, двигаться куда-то без столкновения с чем-либо на пути. Представьте себе сферу, созданную как толстый raycast. В этом случае луч определяется начальным вектором и направлением.

Примечания: SphereCast не будет обнаруживать коллайдеры, для которых сфера перекрывает коллайдер. Проход нулевого радиуса приводит к неопределенному выходу и не всегда ведет себя так же, как Physics.Raycast.

Примечания: hit.normal от Physics.SphereCast не всегда представляет нормаль поверхности. Часто это направление от точки контакта до центра сферы. Это может ввести в заблуждение, если вы используете его для скольжения, отскока или выравнивания объектов. Рассмотрите возможность использования Physics.Raycast, если вам нужна истинная поверхностная нормаль.

Дополнительные ресурсы: Physics.SphereCastAll, Physics.CapsuleCast, Physics.Raycast, Rigidbody.SweepTest.

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { CharacterController charCtrl;

void Start() { charCtrl = GetComponent<CharacterController>(); }

void Update() { RaycastHit hit;

Vector3 p1 = transform.position + charCtrl.center; float distanceToObstacle = 0;

// Cast a sphere wrapping character controller 10 meters forward // to see if it is about to hit anything. if (Physics.SphereCast(p1, charCtrl.height / 2, transform.forward, out hit, 10)) { distanceToObstacle = hit.distance; } } }

Declaration

public static bool SphereCast(Ray ray, float radius, float maxDistance = Mathf.Infinity, int layerMask = DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);

Параметры

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

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

логическое True, если сфера пересекает любой коллайдер, в противном случае false.

Описание

Бросает сферу вдоль луча и возвращает подробную информацию о том, что было поражено.

Это полезно, когда Raycast не дает достаточной точности, потому что вы хотите узнать, сможет ли объект определенного размера, например, персонаж, двигаться куда-то без столкновения с чем-либо на пути. Представьте себе сферу, как толстый raycast.

Дополнительные ресурсы: Physics.SphereCastAll, Physics.CapsuleCast, Physics.Raycast, Rigidbody.SweepTest.

Declaration

public static bool SphereCast(Ray ray, float radius, out RaycastHit hitInfo, float maxDistance = Mathf.Infinity, int layerMask = DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);

Параметры

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

Описание