PhysicsScene2D.CapsuleCast
Declaration
public RaycastHit2D CapsuleCast(Vector2 origin, Vector2 size, CapsuleDirection2D capsuleDirection, float angle, Vector2 direction, float distance, int layerMask = Physics2D.DefaultRaycastLayers);public RaycastHit2D CapsuleCast(Vector2 origin, Vector2 size, CapsuleDirection2D capsuleDirection, float angle, Vector2 direction, float distance, ContactFilter2D contactFilter);Параметры
| Параметр | Описание |
|---|---|
| происхождение | Точка в пространстве 2D, где начинается капсула. |
| размер | Размер капсулы. |
| capsuleDirection | Направление капсулы. |
| угол | Угол капсулы (в градусах). |
| направление | Вектор, обозначающий направление для запуска капсулы. |
| расстояние | Максимальное расстояние, на которое может быть брошена капсула. |
| layerMask | Фильтр используется для обнаружения коллайдеров только на определенных слоях. |
| contactFilter | Контактный фильтр используется для фильтрации результатов по-разному, например, по маске слоя, глубине Z или нормальному углу. |
Возвращаемое значение
RaycastHit2D Возвращаются результаты отливки.
Описание
Бросает капсулу на коллайдеры в PhysicsScene2D, возвращая только первое пересечение.
Операцию CapsuleCast можно представить как перемещение капсулы по сцене в заданном направлении. Любой Collider2D, соприкоснувшийся с ней, может быть обнаружен, а сведения о контакте — возвращены.
Функция возвращает объект RaycastHit2D со ссылкой на коллайдер, которого коснулась капсула. Если столкновения не было, свойство collider результата равно NULL. Результат также содержит точку и нормаль контакта, а также положение центра капсулы в момент касания.
Параметр layerMask позволяет обнаруживать объекты только на выбранных слоях, например только персонажей-противников. Перегрузки метода с параметром contactFilter фильтруют результаты с помощью настроек из ContactFilter2D.
ПРИМЕЧАНИЕ: результаты отсортированы по возрастанию расстояния; ближайший результат находится первым.
Дополнительные ресурсы: PhysicsScene2D, RaycastHit2D, LayerMask, Physics2D.DefaultRaycastLayers, Physics2D.IgnoreRaycastLayer, Physics2D.queriesHitTriggers.
Declaration
public int CapsuleCast(Vector2 origin, Vector2 size, CapsuleDirection2D capsuleDirection, float angle, Vector2 direction, float distance, RaycastHit2D[] results, int layerMask = Physics2D.DefaultRaycastLayers);public int CapsuleCast(Vector2 origin, Vector2 size, CapsuleDirection2D capsuleDirection, float angle, Vector2 direction, float distance, ContactFilter2D contactFilter, RaycastHit2D[] results);Параметры
| Параметр | Описание |
|---|---|
| происхождение | Точка в пространстве 2D, где начинается капсула. |
| размер | Размер капсулы. |
| capsuleDirection | Направление капсулы. |
| угол | Угол капсулы (в градусах). |
| направление | Вектор, обозначающий направление для запуска капсулы. |
| расстояние | Максимальное расстояние, на которое может быть брошена капсула. |
| результаты | Массив для получения результатов. Размер массива определяет максимальное количество результатов, которые могут быть возвращены. |
| layerMask | Фильтр используется для обнаружения коллайдеров только на определенных слоях. |
| contactFilter | Контактный фильтр используется для фильтрации результатов по-разному, например, по маске слоя, глубине Z или нормальному углу. |
Возвращаемое значение
инт Возвращает число результатов, помещенных в массив results.
Описание
Бросает капсулу на коллайдеры в PhysicsScene2D, возвращая все пересечения.
CapsuleCast концептуально напоминает перемещение формы капсулы через Scene в заданном направлении. Любой Collider2D, соприкасающийся с капсулой, можно обнаружить и включить в результаты.
Функция возвращает массив объектов RaycastHit2D со ссылкой на коллайдер, которого коснулась капсула (если попадания не было, свойство collider результата равно NULL). Каждый объект содержит точку и нормаль контакта, в котором капсула коснулась бы коллайдера. Также возвращается центроид положения капсулы, при котором она соприкоснётся с коллайдером в этой точке.
Возвращаемое целое число — количество объектов, пересекающих капсулу (возможно, ноль). Однако размер массива результатов не увеличивается, если элементов в нём недостаточно для всех результатов. Благодаря этому для результатов не выделяется память, что повышает эффективность сборки мусора. При передаче пустого массива всегда возвращается ноль результатов.
Параметр layerMask позволяет выборочно обнаруживать объекты только на определённых слоях (например, выполнять проверку только для вражеских персонажей). Перегрузки этого метода, использующие contactFilter, позволяют фильтровать результаты с помощью параметров, доступных в ContactFilter2D.
ПРИМЕЧАНИЕ: Все результаты отсортированы по возрастанию расстояния, то есть первым идёт ближайший результат.
Дополнительные ресурсы: PhysicsScene2D, RaycastHit2D, LayerMask, Physics2D.DefaultRaycastLayers, Physics2D.IgnoreRaycastLayer, Physics2D.queriesHitTriggers.
Declaration
public int CapsuleCast(Vector2 origin, Vector2 size, CapsuleDirection2D capsuleDirection, float angle, Vector2 direction, float distance, ContactFilter2D contactFilter, List<RaycastHit2D> results);Параметры
| Параметр | Описание |
|---|---|
| происхождение | Точка в пространстве 2D, где начинается капсула. |
| размер | Размер капсулы. |
| capsuleDirection | Направление капсулы. |
| угол | Угол капсулы (в градусах). |
| направление | Вектор, обозначающий направление для запуска капсулы. |
| расстояние | Максимальное расстояние, на которое может быть брошена капсула. |
| contactFilter | Контактный фильтр используется для фильтрации результатов по-разному, например, по маске слоя, глубине Z или нормальному углу. |
| результаты | Список для получения результатов. |
Возвращаемое значение
инт Возвращает число результатов, помещенных в список results.
Описание
Бросает капсулу на коллайдеры в PhysicsScene2D, возвращая все пересечения.
A CapsuleCast это концептуально как перетаскивание формы капсулы через Scene в определенном направлении. Любой Collider контакт с капсулой может быть обнаружен и сообщен.
Возвращаемое целое число — это число объектов, пересекающих капсулу (возможно, нулевой), но массив результатов не будет изменен, если он не содержит достаточно элементов для отображения всех результатов. Это предотвращает выделение памяти для результатов, когда results список не нуждается в изменении размера, и улучшает производительность сбора мусора, когда запрос выполняется часто.
Результаты могут быть также отфильтрованы по contactFilter.
NOTE: Все результаты отсортированы в порядке возрастания расстояния i.e. первый результат является наиболее близким.
Дополнительные ресурсы: PhysicsScene2D и RaycastHit2D.