reckfellENGINE

ShapeCast3D

Трехмерная фигура, охватывающая область пространства для обнаружения CollisionObject3D-ов.

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

Трехмерная фигура, охватывающая область пространства для обнаружения CollisionObject3D-ов.

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

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

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

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

Свойства11

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

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

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

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

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

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

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

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

DebugShapeCustomColorСвойство
# DebugShapeCustomColor
C#
public Color DebugShapeCustomColor { get; set; }

Цвет, используемый для рисования формы в редакторе и в режиме работы, если Видимые области соприкосновения включён в Отладка меню. Этот цвет будет выделен во время работы, если ShapeCast3D С чем-то сталкивается. В случае установки Color(0.0, 0.0, 0.0) (по умолчанию), цвет, установленный в ProjectSettings.debug/shapes/collision/shape_color используется.

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 Shape3D Shape { get; set; }

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

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

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

Методы39

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

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

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

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

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

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

ForceShapecastUpdatevoid
# ForceShapecastUpdate
C#
public void ForceShapecastUpdate();

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

GetClosestCollisionSafeFractionfloat
# GetClosestCollisionSafeFraction
C#
public float GetClosestCollisionSafeFraction();

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

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

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

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

Возвращает столкнувшийся ReckfellObject одного из нескольких столкновений в index или null, если ни один объект не пересекает фигуру (т. е. ShapeCast3D.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, если ни один объект не пересекает фигуру (т.е. ShapeCast3D.IsColliding возвращает false).

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

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

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

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

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

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

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

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

Параметры
ИмяТипПо умолчанию
indexint—
Возвращает Vector3
GetCollisionResultReckfell.Collections.Array
# GetCollisionResult
C#
public Reckfell.Collections.Array GetCollisionResult();
Возвращает Reckfell.Collections.Array
GetDebugShapeCustomColorColor
# GetDebugShapeCustomColor
C#
public Color GetDebugShapeCustomColor();
Возвращает Color
GetExcludeParentBodybool
# GetExcludeParentBody
C#
public bool GetExcludeParentBody();
Возвращает bool
GetMarginfloat
# GetMargin
C#
public float GetMargin();
Возвращает float
GetMaxResultsint
# GetMaxResults
C#
public int GetMaxResults();
Возвращает int
GetShapeShape3D
# GetShape
C#
public Shape3D GetShape();
Возвращает Shape3D
GetTargetPositionVector3
# GetTargetPosition
C#
public Vector3 GetTargetPosition();
Возвращает Vector3
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(CollisionObject3D node);

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

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

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

Параметры
ИмяТипПо умолчанию
ridRid—
ResourceChangedvoid · Устарело
# ResourceChanged
C#
public void ResourceChanged(Resource resource);

Этот метод ничего не даёт.

Параметры
ИмяТипПо умолчанию
resourceResource—
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 включает или отключает указанный слой в ShapeCast3D.CollisionMask при заданном layer_number от 1 до 32.

Параметры
ИмяТипПо умолчанию
layerNumberint—
valuebool—
SetDebugShapeCustomColorvoid
# SetDebugShapeCustomColor
C#
public void SetDebugShapeCustomColor(Color debugShapeCustomColor);
Параметры
ИмяТипПо умолчанию
debugShapeCustomColorColor—
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(Shape3D shape);
Параметры
ИмяТипПо умолчанию
shapeShape3D—
SetTargetPositionvoid
# SetTargetPosition
C#
public void SetTargetPosition(Vector3 localPoint);
Параметры
ИмяТипПо умолчанию
localPointVector3—
Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

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

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

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