reckfellENGINE

ShapeCast2D

Двумерная фигура, которая прочесывает область пространства для обнаружения CollisionObject2D.

На этой странице
class ShapeCast2DReckfellSharpНаследует Entity2D

Двумерная фигура, которая прочесывает область пространства для обнаружения CollisionObject2D.

Приведение формы позволяет обнаруживать объекты столкновения, перемещая его ShapeCast2D.Shape вдоль направления приведения, определяемого ShapeCast2D.TargetPosition. Это похоже на RayCast2D, но позволяет перемещать область пространства, а не просто прямую линию. ShapeCast2D может обнаруживать несколько объектов столкновения. Это полезно для таких вещей, как широкие лазерные лучи или привязка простой формы к полу. Немедленное перекрытие столкновений можно выполнить, установив ShapeCast2D.TargetPosition на Vector2(0, 0) и вызвав ShapeCast2D.ForceShapecastUpdate в том же физическом кадре. Это помогает преодолеть некоторые ограничения Area2D при использовании в качестве мгновенной области обнаружения, поскольку информация о столкновении не сразу доступна ему. Примечание: Приведение формы требует больших вычислительных затрат, чем приведение лучей.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

ShapeCast2DКонструктор
# ShapeCast2D
C#
public ShapeCast2D();

Свойства10

CollideWithAreasСвойство
# CollideWithAreas
C#
public bool CollideWithAreas { get; set; }

Если true, будут сообщаться столкновения с Area2D.

CollideWithBodiesСвойство
# CollideWithBodies
C#
public bool CollideWithBodies { get; set; }

Если true, будут сообщаться столкновения с PhysicsBody2D.

CollisionMaskСвойство
# CollisionMask
C#
public uint CollisionMask { get; set; }

Маска столкновения формы. Будут обнаружены только те объекты, находящиеся хотя бы в одном из слое столкновения, включенном в маске. Для получения дополнительной информации см. Слои и маски столкновения в документации.

CollisionResultСвойство
# CollisionResult
C#
public Reckfell.Collections.Array CollisionResult { get; }

Возвращает полную информацию о столкновениях из столкновительного развертки. Возвращаемые данные такие же, как в методе PhysicsDirectSpaceState2D.GetRestInfo.

EnabledСвойство
# Enabled
C#
public bool Enabled { get; set; }

Если true, будут сообщаться столкновения.

ExcludeParentСвойство
# ExcludeParent
C#
public bool ExcludeParent { get; set; }

Если true, родительский узел будет исключен из обнаружения столкновений.

MarginСвойство
# Margin
C#
public float Margin { get; set; }

Запас на столкновение для формы. Больший запас помогает обнаруживать столкновения более последовательно, за счет точности.

MaxResultsСвойство
# MaxResults
C#
public int MaxResults { get; set; }

С помощью этого параметра можно ограничить количество пересечений, чтобы сократить время обработки.

ShapeСвойство
# Shape
C#
public Shape2D Shape { get; set; }

Форма, которая будет использоваться для запросов на столкновение.

TargetPositionСвойство
# TargetPosition
C#
public Vector2 TargetPosition { get; set; }

Точка назначения фигуры относительно Entity2D.Position этого узла.

Методы36

AddExceptionvoid
# AddException
C#
public void AddException(CollisionObject2D node);

Добавляет исключение столкновений, чтобы фигура не сообщала о столкновениях с указанным узлом.

Параметры
ИмяТипПо умолчанию
nodeCollisionObject2D—
AddExceptionRidvoid
# AddExceptionRid
C#
public void AddExceptionRid(Rid rid);

Добавляет исключение столкновений, чтобы фигура не сообщала о столкновениях с указанным Rid.

Параметры
ИмяТипПо умолчанию
ridRid—
ClearExceptionsvoid
# ClearExceptions
C#
public void ClearExceptions();

Удаляет все исключения столкновений для этой фигуры.

ForceShapecastUpdatevoid
# ForceShapecastUpdate
C#
public void ForceShapecastUpdate();

Обновляет информацию о столкновении для фигуры немедленно, не дожидаясь следующего вызова _physics_process. Используйте этот метод, например, когда фигура или ее родительский элемент изменили состояние. Примечание: Установка ShapeCast2D.Enabled на true не требуется для работы этого.

GetClosestCollisionSafeFractionfloat
# GetClosestCollisionSafeFraction
C#
public float GetClosestCollisionSafeFraction();

Возвращает долю от начала этого приведения до его ShapeCast2D.TargetPosition того, насколько далеко может переместиться фигура, не вызывая столкновения, в виде значения между 0.0 и 1.0.

Возвращает float
GetClosestCollisionUnsafeFractionfloat
# GetClosestCollisionUnsafeFraction
C#
public float GetClosestCollisionUnsafeFraction();

Возвращает долю от начала этого приведения до его ShapeCast2D.TargetPosition того, как далеко должна переместиться фигура, чтобы вызвать столкновение, как значение между 0.0 и 1.0. В идеальных условиях это было бы то же самое, что и ShapeCast2D.GetClosestCollisionSafeFraction, однако приведение фигуры вычисляется дискретными шагами, поэтому точная точка столкновения может находиться между двумя вычисленными позициями.

Возвращает float
GetColliderReckfellObject
# GetCollider
C#
public ReckfellObject GetCollider(int index);

Возвращает столкнувшийся ReckfellObject одного из нескольких столкновений в index или null, если ни один объект не пересекает фигуру (т. е. ShapeCast2D.IsColliding возвращает false).

Параметры
ИмяТипПо умолчанию
indexint—
Возвращает ReckfellObject
GetColliderRidRid
# GetColliderRid
C#
public Rid GetColliderRid(int index);

Возвращает Rid столкнувшегося объекта одного из нескольких столкновений в index.

Параметры
ИмяТипПо умолчанию
indexint—
Возвращает Rid
GetColliderShapeint
# GetColliderShape
C#
public int GetColliderShape(int index);

Возвращает идентификатор сталкивающейся фигуры одного из нескольких столкновений в index или 0, если ни один объект не пересекает фигуру (т.е. ShapeCast2D.IsColliding возвращает false).

Параметры
ИмяТипПо умолчанию
indexint—
Возвращает int
GetCollisionCountint
# GetCollisionCount
C#
public int GetCollisionCount();

Количество столкновений, обнаруженных в точке удара. Используйте это для итерации по нескольким столкновениям, как предусмотрено методами ShapeCast2D.GetCollider, ShapeCast2D.GetColliderShape, ShapeCast2D.GetCollisionPoint и ShapeCast2D.GetCollisionNormal.

Возвращает int
GetCollisionMaskuint
# GetCollisionMask
C#
public uint GetCollisionMask();
Возвращает uint
GetCollisionMaskValuebool
# GetCollisionMaskValue
C#
public bool GetCollisionMaskValue(int layerNumber);

Возвращает, включен ли указанный слой ShapeCast2D.CollisionMask, учитывая layer_number от 1 до 32.

Параметры
ИмяТипПо умолчанию
layerNumberint—
Возвращает bool
GetCollisionNormalVector2
# GetCollisionNormal
C#
public Vector2 GetCollisionNormal(int index);

Возвращает нормаль одного из нескольких столкновений в точке index пересекающегося объекта.

Параметры
ИмяТипПо умолчанию
indexint—
Возвращает Vector2
GetCollisionPointVector2
# GetCollisionPoint
C#
public Vector2 GetCollisionPoint(int index);

Возвращает точку столкновения одного из нескольких столкновений в index, где фигура пересекает сталкивающийся объект. Примечание: Эта точка находится в глобальной системе координат.

Параметры
ИмяТипПо умолчанию
indexint—
Возвращает Vector2
GetCollisionResultReckfell.Collections.Array
# GetCollisionResult
C#
public Reckfell.Collections.Array GetCollisionResult();
Возвращает Reckfell.Collections.Array
GetExcludeParentBodybool
# GetExcludeParentBody
C#
public bool GetExcludeParentBody();
Возвращает bool
GetMarginfloat
# GetMargin
C#
public float GetMargin();
Возвращает float
GetMaxResultsint
# GetMaxResults
C#
public int GetMaxResults();
Возвращает int
GetShapeShape2D
# GetShape
C#
public Shape2D GetShape();
Возвращает Shape2D
GetTargetPositionVector2
# GetTargetPosition
C#
public Vector2 GetTargetPosition();
Возвращает Vector2
IsCollideWithAreasEnabledbool
# IsCollideWithAreasEnabled
C#
public bool IsCollideWithAreasEnabled();
Возвращает bool
IsCollideWithBodiesEnabledbool
# IsCollideWithBodiesEnabled
C#
public bool IsCollideWithBodiesEnabled();
Возвращает bool
IsCollidingbool
# IsColliding
C#
public bool IsColliding();

Возвращает, пересекается ли какой-либо объект с вектором фигуры (с учетом длины вектора).

Возвращает bool
IsEnabledbool
# IsEnabled
C#
public bool IsEnabled();
Возвращает bool
RemoveExceptionvoid
# RemoveException
C#
public void RemoveException(CollisionObject2D node);

Удаляет исключение столкновения, чтобы фигура не сообщала о столкновениях с указанным узлом.

Параметры
ИмяТипПо умолчанию
nodeCollisionObject2D—
RemoveExceptionRidvoid
# RemoveExceptionRid
C#
public void RemoveExceptionRid(Rid rid);

Удаляет исключение столкновения, чтобы фигура не сообщала о столкновениях с указанным Rid.

Параметры
ИмяТипПо умолчанию
ridRid—
SetCollideWithAreasvoid
# SetCollideWithAreas
C#
public void SetCollideWithAreas(bool enable);
Параметры
ИмяТипПо умолчанию
enablebool—
SetCollideWithBodiesvoid
# SetCollideWithBodies
C#
public void SetCollideWithBodies(bool enable);
Параметры
ИмяТипПо умолчанию
enablebool—
SetCollisionMaskvoid
# SetCollisionMask
C#
public void SetCollisionMask(uint mask);
Параметры
ИмяТипПо умолчанию
maskuint—
SetCollisionMaskValuevoid
# SetCollisionMaskValue
C#
public void SetCollisionMaskValue(int layerNumber, bool value);

На основе value включает или отключает указанный слой в ShapeCast2D.CollisionMask при заданном layer_number от 1 до 32.

Параметры
ИмяТипПо умолчанию
layerNumberint—
valuebool—
SetEnabledvoid
# SetEnabled
C#
public void SetEnabled(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetExcludeParentBodyvoid
# SetExcludeParentBody
C#
public void SetExcludeParentBody(bool mask);
Параметры
ИмяТипПо умолчанию
maskbool—
SetMarginvoid
# SetMargin
C#
public void SetMargin(float margin);
Параметры
ИмяТипПо умолчанию
marginfloat—
SetMaxResultsvoid
# SetMaxResults
C#
public void SetMaxResults(int maxResults);
Параметры
ИмяТипПо умолчанию
maxResultsint—
SetShapevoid
# SetShape
C#
public void SetShape(Shape2D shape);
Параметры
ИмяТипПо умолчанию
shapeShape2D—
SetTargetPositionvoid
# SetTargetPosition
C#
public void SetTargetPosition(Vector2 localPoint);
Параметры
ИмяТипПо умолчанию
localPointVector2—
Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.