PhysicsServer2D
Серверный интерфейс для низкоуровневого доступа к 2D-физике.
Серверный интерфейс для низкоуровневого доступа к 2D-физике.
PhysicsServer2D — сервер, отвечающий за всю 2D-физику. Он может напрямую создавать и управлять всеми физическими объектами:
- пространство — это самодостаточный мир для физического моделирования. Оно содержит тела, области и сочленения. Его состояние может быть запрошено для получения информации о столкновениях и пересечениях, и можно изменить несколько параметров моделирования.
- форма — это геометрическая форма, такая как круг, прямоугольник, капсула или многоугольник. Ее можно использовать для обнаружения столкновений, добавив ее к телу/области, возможно, с дополнительным преобразованием относительно начала координат тела/области. Тела/области могут иметь несколько (преобразованных) форм, добавленных к ним, и одна форма может быть добавлена к телам/областям несколько раз с различными локальными преобразованиями.
- тело — это физический объект, который может находиться в статическом, кинематическом или жестком режиме. Его состояние (такое как положение и скорость) можно запрашивать и обновлять. Обратный вызов интеграции силы может быть установлен для настройки физики тела.
- область - это область в пространстве, которая может использоваться для обнаружения тел и областей, входящих и выходящих из нее. Обратный вызов мониторинга тела может быть установлен для сообщения о входе/выходе форм тела, и аналогичным образом может быть установлен обратный вызов мониторинга области. Гравитация и демпфирование могут быть переопределены в области путем установки параметров области.
- соединение - это ограничение, либо между двумя телами, либо на одном теле относительно точки. Такие параметры, как смещение сочленения и остаточная длина пружинного соединения, могут быть скорректированы.
Физические объекты в
PhysicsServer2Dмогут быть созданы и изменены независимо; они не должны быть привязаны к узлам в дереве сцены. Примечание: Все узлы 2D-физики используют физический сервер внутренне. Добавление физического узла в дерево сцены приведет к созданию соответствующего физического объекта на физическом сервере. Узел твердого тела регистрирует обратный вызов, который обновляет преобразование узла с преобразованием соответствующего объекта тела на физическом сервере (каждое обновление физики). Узел области регистрирует обратный вызов, чтобы информировать узел области о перекрытиях с соответствующим объектом области на физическом сервере. Узел raycast запрашивает прямое состояние соответствующего пространства на физическом сервере.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Свойства1
SingletonСвойство
public static PhysicsServer2DInstance Singleton { get; }Методы120
AreaAddShapevoid
public static void AreaAddShape(Rid area, Rid shape, Transform2D? transform = default, bool disabled = false);Добавляет фигуру к области с заданным локальным преобразованием. Фигура (вместе со своими свойствами transform и disabled) добавляется в массив фигур, а фигуры области обычно ссылаются по их индексу в этом массиве.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
shape | Rid | — |
transform | Transform2D? | default |
disabled | bool | false |
transformЕсли параметр не имеет значения, то значение по умолчанию: Transform2D.Identity.
AreaAttachCanvasInstanceIdvoid
public static void AreaAttachCanvasInstanceId(Rid area, ulong id);Прикрепляет ObjectID холста к области. Используйте ReckfellObject.GetInstanceId, чтобы получить ObjectID для CanvasLayer.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
id | ulong | — |
AreaAttachObjectInstanceIdvoid
public static void AreaAttachObjectInstanceId(Rid area, ulong id);Прикрепляет ObjectID ReckfellObject к области. Используйте ReckfellObject.GetInstanceId, чтобы получить ObjectID для CollisionObject2D.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
id | ulong | — |
AreaClearShapesvoid
public static void AreaClearShapes(Rid area);Удаляет все фигуры из области. Это не удаляет сами фигуры, поэтому их можно продолжать использовать в другом месте или добавлять обратно позже.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
AreaCreateRid
public static Rid AreaCreate();Создает объект 2D-области на физическом сервере и возвращает Rid, который его идентифицирует. Настройки по умолчанию для созданной области включают слой столкновений и маску, установленные на 1, и monitorable, установленные на false.
Используйте PhysicsServer2D.AreaAddShape, чтобы добавить к нему формы, используйте PhysicsServer2D.AreaSetTransform, чтобы задать его преобразование, и используйте PhysicsServer2D.AreaSetSpace, чтобы добавить область в пространство. Если вы хотите, чтобы область была обнаруживаемой, используйте PhysicsServer2D.AreaSetMonitorable.
RidAreaGetCanvasInstanceIdulong
public static ulong AreaGetCanvasInstanceId(Rid area);Возвращает ObjectID холста, прикрепленного к области. Используйте @GlobalScope.instance_from_id, чтобы получить CanvasLayer из ненулевого ObjectID.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
ulongAreaGetCollisionLayeruint
public static uint AreaGetCollisionLayer(Rid area);Возвращает физический слой или слои, к которым принадлежит область, в виде битовой маски.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
uintAreaGetCollisionMaskuint
public static uint AreaGetCollisionMask(Rid area);Возвращает физический слой или слои, с которыми может контактировать область, в виде битовой маски.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
uintAreaGetObjectInstanceIdulong
public static ulong AreaGetObjectInstanceId(Rid area);Возвращает ObjectID, прикрепленный к области. Используйте @GlobalScope.instance_from_id, чтобы извлечь ReckfellObject из ненулевого ObjectID.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
ulongAreaGetParamVariant
public static Variant AreaGetParam(Rid area, PhysicsServer2D.AreaParameter param);Возвращает значение заданного параметра площади.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
param | PhysicsServer2D.AreaParameter | — |
VariantAreaGetShapeRid
public static Rid AreaGetShape(Rid area, int shapeIdx);Возвращает Rid фигуры с указанным индексом в массиве фигур области.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
shapeIdx | int | — |
RidAreaGetShapeCountint
public static int AreaGetShapeCount(Rid area);Возвращает количество фигур, добавленных в область.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
intAreaGetShapeTransformTransform2D
public static Transform2D AreaGetShapeTransform(Rid area, int shapeIdx);Возвращает матрицу локального преобразования фигуры с заданным индексом в массиве фигур области.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
shapeIdx | int | — |
Transform2DAreaGetSpaceRid
public static Rid AreaGetSpace(Rid area);Возвращает Rid пространства, назначенного области. Возвращает пустой Rid, если пространство не назначено.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
RidAreaGetTransformTransform2D
public static Transform2D AreaGetTransform(Rid area);Возвращает матрицу преобразования области.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
Transform2DAreaRemoveShapevoid
public static void AreaRemoveShape(Rid area, int shapeIdx);Удаляет фигуру с указанным индексом из массива фигур области. Сама фигура не удаляется, поэтому ее можно использовать в другом месте или добавить обратно позже. В результате этой операции у фигур области, которые имели индексы выше shape_idx, индекс будет уменьшен на единицу.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
shapeIdx | int | — |
AreaSetAreaMonitorCallbackvoid
public static void AreaSetAreaMonitorCallback(Rid area, Callable callback);Устанавливает обратный вызов монитора области. Этот обратный вызов будет вызван, когда любая другая (форма) области входит или выходит из (формы) заданной области, и должен принимать следующие пять параметров:
- целое число
status: либоPhysicsServer2D.AreaBodyStatus.AddedилиPhysicsServer2D.AreaBodyStatus.Removedв зависимости от того, вошла или вышла из области форма другой области, Ridarea_rid:Ridдругой области, которая вошла или вышла из области,- целое число
instance_id:ObjectID, прикрепленный к другой области, - целое число
area_shape_idx: индекс формы другой области, которая вошла или вышла из области, - целое число
self_shape_idx: индекс формы области, в которую вошла или вышла другая область. Подсчитывая (или отслеживая) входящие и выходящие фигуры, можно определить, входит ли область (со всеми ее фигурами) в первый раз или выходит в последний раз.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
callback | Callable | — |
AreaSetCollisionLayervoid
public static void AreaSetCollisionLayer(Rid area, uint layer);Назначает область одному или нескольким физическим слоям с помощью битовой маски.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
layer | uint | — |
AreaSetCollisionMaskvoid
public static void AreaSetCollisionMask(Rid area, uint mask);Устанавливает, какие физические слои будет отслеживать область, с помощью битовой маски.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
mask | uint | — |
AreaSetMonitorCallbackvoid
public static void AreaSetMonitorCallback(Rid area, Callable callback);Устанавливает обратный вызов монитора тела области. Этот обратный вызов будет вызван, когда любое другое (форма) тело входит или выходит (форма) из заданной области, и должен принимать следующие пять параметров:
- целое число
status: либоPhysicsServer2D.AreaBodyStatus.AddedилиPhysicsServer2D.AreaBodyStatus.Removedв зависимости от того, вошла или вышла из области другая форма тела, Ridbody_rid:Ridтела, которое вошло или вышло из области,- целое число
instance_id:ObjectID, прикрепленный к телу, - целое число
body_shape_idx: индекс формы тела, которое вошло или вышло из области, - целое число
self_shape_idx: индекс формы области, в которую тело вошло или вышло. Подсчитывая (или отслеживая) входящие и выходящие формы, можно определить, входит ли тело (со всеми его формами) в первый раз или выходит в последний раз.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
callback | Callable | — |
AreaSetMonitorablevoid
public static void AreaSetMonitorable(Rid area, bool monitorable);Устанавливает, является ли область контролируемой или нет. Если monitorable имеет значение true, обратный вызов мониторинга области других областей будет вызван, когда эта область входит в них или выходит из них.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
monitorable | bool | — |
AreaSetParamvoid
public static void AreaSetParam(Rid area, PhysicsServer2D.AreaParameter param, Variant value);Устанавливает значение заданного параметра области.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
param | PhysicsServer2D.AreaParameter | — |
value | Variant | — |
AreaSetShapevoid
public static void AreaSetShape(Rid area, int shapeIdx, Rid shape);Заменяет форму области по указанному индексу на другую форму, не влияя на свойства transform и disabled по тому же индексу.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
shapeIdx | int | — |
shape | Rid | — |
AreaSetShapeDisabledvoid
public static void AreaSetShapeDisabled(Rid area, int shapeIdx, bool disabled);Устанавливает отключенное свойство формы области с заданным индексом. Если disabled равен true, то форма не будет обнаруживать никакие другие формы, входящие или выходящие из нее.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
shapeIdx | int | — |
disabled | bool | — |
AreaSetShapeTransformvoid
public static void AreaSetShapeTransform(Rid area, int shapeIdx, Transform2D transform);Задает матрицу локального преобразования формы области с заданным индексом.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
shapeIdx | int | — |
transform | Transform2D | — |
AreaSetSpacevoid
public static void AreaSetSpace(Rid area, Rid space);Добавляет область к указанному пространству после удаления области из ранее назначенного пространства (если таковое имеется).
Примечание: Чтобы удалить область из пространства без немедленного добавления ее обратно в другое место, используйте PhysicsServer2D.area_set_space(area, RID()).
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
space | Rid | — |
AreaSetTransformvoid
public static void AreaSetTransform(Rid area, Transform2D transform);Задает матрицу преобразования области.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Rid | — |
transform | Transform2D | — |
BodyAddCollisionExceptionvoid
public static void BodyAddCollisionException(Rid body, Rid exceptedBody);Добавить excepted_body в перечень исключений из списка столкновений тела, так что столкновения с ним игнорируются.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
exceptedBody | Rid | — |
BodyAddConstantCentralForcevoid
public static void BodyAddConstantCentralForce(Rid body, Vector2 force);Добавляет постоянную направленную силу к телу. Сила не влияет на вращение. Сила остается приложенной с течением времени, пока не будет очищена с помощью PhysicsServer2D.body_set_constant_force(body, Vector2(0, 0)).
Это эквивалентно использованию PhysicsServer2D.BodyAddConstantForce в центре масс тела.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
force | Vector2 | — |
BodyAddConstantForcevoid
public static void BodyAddConstantForce(Rid body, Vector2 force, Vector2? position = default);Добавляет постоянную позиционную силу к телу. Сила может влиять на вращение, если position отличается от центра масс тела. Сила остается приложенной с течением времени, пока не будет очищена с помощью PhysicsServer2D.body_set_constant_force(body, Vector2(0, 0)).
position — это смещение от начала координат тела в глобальных координатах.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
force | Vector2 | — |
position | Vector2? | default |
positionЕсли параметр не имеет значения, то значение по умолчанию: new Vector2(0.0f, 0.0f).
BodyAddConstantTorquevoid
public static void BodyAddConstantTorque(Rid body, float torque);Добавляет постоянную вращательную силу к телу. Сила не влияет на положение. Сила остается приложенной с течением времени, пока не будет очищена с помощью PhysicsServer2D.body_set_constant_torque(body, 0).
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
torque | float | — |
BodyAddShapevoid
public static void BodyAddShape(Rid body, Rid shape, Transform2D? transform = default, bool disabled = false);Добавляет фигуру к области с заданным локальным преобразованием. Фигура (вместе со своими свойствами transform и disabled) добавляется в массив фигур, а фигуры тела обычно ссылаются по их индексу в этом массиве.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
shape | Rid | — |
transform | Transform2D? | default |
disabled | bool | false |
transformЕсли параметр не имеет значения, то значение по умолчанию: Transform2D.Identity.
BodyApplyCentralForcevoid
public static void BodyApplyCentralForce(Rid body, Vector2 force);Применяет направленную силу к телу в центре масс тела. Сила не влияет на вращение. Сила зависит от времени и должна применяться при каждом обновлении физики.
Это эквивалентно использованию PhysicsServer2D.BodyApplyForce в центре масс тела.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
force | Vector2 | — |
BodyApplyCentralImpulsevoid
public static void BodyApplyCentralImpulse(Rid body, Vector2 impulse);Применяет направленный импульс к телу в центре масс тела. Импульс не влияет на вращение.
Импульс не зависит от времени! Применение импульса в каждом кадре приведет к силе, зависящей от частоты кадров. По этой причине его следует использовать только при моделировании одноразовых ударов (в противном случае используйте функции "_force").
Это эквивалентно использованию PhysicsServer2D.BodyApplyImpulse в центре масс тела.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
impulse | Vector2 | — |
BodyApplyForcevoid
public static void BodyApplyForce(Rid body, Vector2 force, Vector2? position = default);Применяет позиционированную силу к телу. Сила может влиять на вращение, если position отличается от центра масс тела. Сила зависит от времени и должна применяться при каждом обновлении физики.
position — это смещение от начала координат тела в глобальных координатах.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
force | Vector2 | — |
position | Vector2? | default |
positionЕсли параметр не имеет значения, то значение по умолчанию: new Vector2(0.0f, 0.0f).
BodyApplyImpulsevoid
public static void BodyApplyImpulse(Rid body, Vector2 impulse, Vector2? position = default);Применяет позиционированный импульс к телу. Импульс может влиять на вращение, если position отличается от центра масс тела.
Импульс не зависит от времени! Применение импульса в каждом кадре приведет к силе, зависящей от частоты кадров. По этой причине его следует использовать только при моделировании одноразовых ударов (в противном случае используйте функции "_force").
position — это смещение от начала координат тела в глобальных координатах.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
impulse | Vector2 | — |
position | Vector2? | default |
positionЕсли параметр не имеет значения, то значение по умолчанию: new Vector2(0.0f, 0.0f).
BodyApplyTorquevoid
public static void BodyApplyTorque(Rid body, float torque);Применяет вращательную силу к телу. Сила не влияет на положение. Сила зависит от времени и должна применяться при каждом обновлении физики.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
torque | float | — |
BodyApplyTorqueImpulsevoid
public static void BodyApplyTorqueImpulse(Rid body, float impulse);Применяет вращательный импульс к телу. Импульс не влияет на положение. Импульс не зависит от времени! Применение импульса в каждом кадре приведет к силе, зависящей от частоты кадров. По этой причине его следует использовать только при моделировании одноразовых ударов (в противном случае используйте функции "_force").
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
impulse | float | — |
BodyAttachCanvasInstanceIdvoid
public static void BodyAttachCanvasInstanceId(Rid body, ulong id);Прикрепляет ObjectID холста к телу. Используйте ReckfellObject.GetInstanceId, чтобы получить ObjectID CanvasLayer.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
id | ulong | — |
BodyAttachObjectInstanceIdvoid
public static void BodyAttachObjectInstanceId(Rid body, ulong id);Прикрепляет ObjectID, из ReckfellObject, к телу. Используйте ReckfellObject.GetInstanceId, чтобы получить ObjectID CollisionObject2D.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
id | ulong | — |
BodyClearShapesvoid
public static void BodyClearShapes(Rid body);Удаляет все фигуры из тела. Это не удаляет сами фигуры, поэтому их можно продолжать использовать в другом месте или добавлять обратно позже.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
BodyCreateRid
public static Rid BodyCreate();Создает объект 2D-тела на физическом сервере и возвращает Rid, который его идентифицирует. Настройки по умолчанию для созданной области включают слой столкновения и маску, установленные на 1, и режим тела, установленный на PhysicsServer2D.BodyMode.Rigid.
Используйте PhysicsServer2D.BodyAddShape, чтобы добавить к нему формы, используйте PhysicsServer2D.BodySetState, чтобы задать его преобразование, и используйте PhysicsServer2D.BodySetSpace, чтобы добавить тело в пространство.
RidBodyGetCanvasInstanceIdulong
public static ulong BodyGetCanvasInstanceId(Rid body);Возвращает ObjectID холста, прикрепленного к телу. Используйте @GlobalScope.instance_from_id, чтобы получить CanvasLayer из ненулевого ObjectID.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
ulongBodyGetCollisionLayeruint
public static uint BodyGetCollisionLayer(Rid body);Возвращает физический слой или слои, к которым принадлежит тело, в виде битовой маски.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
uintBodyGetCollisionMaskuint
public static uint BodyGetCollisionMask(Rid body);Возвращает физический слой или слои, с которыми может сталкиваться тело, в виде битовой маски.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
uintBodyGetCollisionPriorityfloat
public static float BodyGetCollisionPriority(Rid body);Возвращает приоритет столкновения тела. Используется в фазе депенетирования PhysicsServer2D.BodyTestMotion. Чем выше приоритет, тем ниже будет проникновение в тело.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
floatBodyGetConstantForceVector2
public static Vector2 BodyGetConstantForce(Rid body);Возвращает общую постоянную позиционную силу тела, применяемую во время каждого обновления физики.
См. PhysicsServer2D.BodyAddConstantForce и PhysicsServer2D.BodyAddConstantCentralForce.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
Vector2BodyGetConstantTorquefloat
public static float BodyGetConstantTorque(Rid body);Возвращает общую постоянную вращательную силу тела, применяемую во время каждого обновления физики.
См. PhysicsServer2D.BodyAddConstantTorque.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
floatBodyGetContinuousCollisionDetectionModePhysicsServer2D.CcdMode
public static PhysicsServer2D.CcdMode BodyGetContinuousCollisionDetectionMode(Rid body);Возвращает режим непрерывного обнаружения столкновений тела.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
PhysicsServer2D.CcdModeBodyGetDirectStatePhysicsDirectBodyState2D
public static PhysicsDirectBodyState2D BodyGetDirectState(Rid body);Возвращает PhysicsDirectBodyState2D тела. Возвращает null, если тело уничтожено или не назначено пространству.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
PhysicsDirectBodyState2DBodyGetMaxContactsReportedint
public static int BodyGetMaxContactsReported(Rid body);Возвращает максимальное количество контактов, о которых может сообщить тело. См. PhysicsServer2D.BodySetMaxContactsReported.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
intBodyGetModePhysicsServer2D.BodyMode
public static PhysicsServer2D.BodyMode BodyGetMode(Rid body);Возвращает режим тела.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
PhysicsServer2D.BodyModeBodyGetObjectInstanceIdulong
public static ulong BodyGetObjectInstanceId(Rid body);Возвращает ObjectID, прикрепленный к телу. Используйте @GlobalScope.instance_from_id, чтобы извлечь ReckfellObject из ненулевого ObjectID.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
ulongBodyGetParamVariant
public static Variant BodyGetParam(Rid body, PhysicsServer2D.BodyParameter param);Возвращает значение указанного параметра тела.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
param | PhysicsServer2D.BodyParameter | — |
VariantBodyGetShapeRid
public static Rid BodyGetShape(Rid body, int shapeIdx);Возвращает Rid фигуры с указанным индексом в массиве фигур тела.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
shapeIdx | int | — |
RidBodyGetShapeCountint
public static int BodyGetShapeCount(Rid body);Возвращает количество фигур, добавленных к телу.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
intBodyGetShapeTransformTransform2D
public static Transform2D BodyGetShapeTransform(Rid body, int shapeIdx);Возвращает матрицу локального преобразования фигуры с заданным индексом в массиве фигур области.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
shapeIdx | int | — |
Transform2DBodyGetSpaceRid
public static Rid BodyGetSpace(Rid body);Возвращает Rid пространства, назначенного телу. Возвращает пустой Rid, если пространство не назначено.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
RidBodyGetStateVariant
public static Variant BodyGetState(Rid body, PhysicsServer2D.BodyState state);Возвращает значение заданного состояния тела.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
state | PhysicsServer2D.BodyState | — |
VariantBodyIsOmittingForceIntegrationbool
public static bool BodyIsOmittingForceIntegration(Rid body);Возвращает true, если тело пропускает стандартную интеграцию силы. См. PhysicsServer2D.BodySetOmitForceIntegration.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
boolBodyRemoveCollisionExceptionvoid
public static void BodyRemoveCollisionException(Rid body, Rid exceptedBody);Удалить excepted_body из списка исключений в отношении столкновения тела, так что столкновения с ним больше не игнорируются.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
exceptedBody | Rid | — |
BodyRemoveShapevoid
public static void BodyRemoveShape(Rid body, int shapeIdx);Удаляет фигуру с указанным индексом из массива фигур тела. Сама фигура не удаляется, поэтому ее можно использовать в другом месте или добавить обратно позже. В результате этой операции у фигур тела, которые имели индексы выше shape_idx, индекс будет уменьшен на единицу.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
shapeIdx | int | — |
BodyResetMassPropertiesvoid
public static void BodyResetMassProperties(Rid body);Восстанавливает инерцию и центр масс тела по умолчанию на основе его форм. Это отменяет любые пользовательские значения, ранее заданные с помощью PhysicsServer2D.BodySetParam.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
BodySetAxisVelocityvoid
public static void BodySetAxisVelocity(Rid body, Vector2 axisVelocity);Изменяет линейную скорость тела таким образом, что ее проекция на ось axis_velocity.normalized() равна в точности axis_velocity.length(). Это полезно для прыжкового поведения.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
axisVelocity | Vector2 | — |
BodySetCollisionLayervoid
public static void BodySetCollisionLayer(Rid body, uint layer);Устанавливает физический слой или слои, к которым принадлежит тело, с помощью битовой маски.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
layer | uint | — |
BodySetCollisionMaskvoid
public static void BodySetCollisionMask(Rid body, uint mask);Устанавливает физический слой или слои, с которыми может сталкиваться тело, с помощью битовой маски.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
mask | uint | — |
BodySetCollisionPriorityvoid
public static void BodySetCollisionPriority(Rid body, float priority);Устанавливает приоритет столкновения тела. Используется в фазе депенетирования PhysicsServer2D.BodyTestMotion. Чем выше приоритет, тем ниже будет проникновение в тело.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
priority | float | — |
BodySetConstantForcevoid
public static void BodySetConstantForce(Rid body, Vector2 force);Устанавливает общую постоянную позиционную силу тела, применяемую во время каждого обновления физики.
См. PhysicsServer2D.BodyAddConstantForce и PhysicsServer2D.BodyAddConstantCentralForce.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
force | Vector2 | — |
BodySetConstantTorquevoid
public static void BodySetConstantTorque(Rid body, float torque);Устанавливает общую постоянную вращательную силу тела, применяемую во время каждого обновления физики.
См. PhysicsServer2D.BodyAddConstantTorque.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
torque | float | — |
BodySetContinuousCollisionDetectionModevoid
public static void BodySetContinuousCollisionDetectionMode(Rid body, PhysicsServer2D.CcdMode mode);Устанавливает режим непрерывного обнаружения столкновений. Непрерывное обнаружение столкновений пытается предсказать, где движущееся тело столкнется между обновлениями физики, вместо того, чтобы перемещать его и корректировать его движение в случае столкновения.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
mode | PhysicsServer2D.CcdMode | — |
BodySetForceIntegrationCallbackvoid
public static void BodySetForceIntegrationCallback(Rid body, Callable callable, Variant userdata = default);Устанавливает функцию вызова интегрирования усилия в организм для callable. Использовать пустоту Callable ([Код пропусков]Callable() ", чтобы очистить заказный ответ.
Функция callable будет называться каждый физика клещ до стандартной интеграции сил (см. PhysicsServer2D.BodySetOmitForceIntegrationОн может использоваться, например, для обновления линейной и угловой скорости тела на основе контакта с другими телами.
Если userdata нет null, функция callable должны измеряться следующие два параметра:
state: aPhysicsDirectBodyState2Dиспользуя для извлечения и изменения состояния тела,Variant; its value will be theВ этот метод ввели данные пользователя. ЕслиuserdataэтоnullТогдаcallableдолжен взять толькоstate` параметр.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
callable | Callable | — |
userdata | Variant | default |
BodySetMaxContactsReportedvoid
public static void BodySetMaxContactsReported(Rid body, int amount);Устанавливает максимальное количество контактов, о которых может сообщить тело. Если amount больше нуля, то тело будет отслеживать не более этого количества контактов с другими телами.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
amount | int | — |
BodySetModevoid
public static void BodySetMode(Rid body, PhysicsServer2D.BodyMode mode);Устанавливает режим тела.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
mode | PhysicsServer2D.BodyMode | — |
BodySetOmitForceIntegrationvoid
public static void BodySetOmitForceIntegration(Rid body, bool enable);Устанавливает, будет ли тело пропускать стандартную интеграцию силы. Если enable равно true, тело не будет автоматически использовать приложенные силы, крутящие моменты и демпфирование для обновления линейной и угловой скорости тела. В этом случае PhysicsServer2D.BodySetForceIntegrationCallback можно использовать для ручного обновления линейной и угловой скорости.
Этот метод вызывается, когда задано свойство RigidBody2D.CustomIntegrator.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
enable | bool | — |
BodySetParamvoid
public static void BodySetParam(Rid body, PhysicsServer2D.BodyParameter param, Variant value);Устанавливает значение указанного параметра тела.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
param | PhysicsServer2D.BodyParameter | — |
value | Variant | — |
BodySetShapevoid
public static void BodySetShape(Rid body, int shapeIdx, Rid shape);Заменяет форму тела по указанному индексу на другую форму, не влияя на свойства transform, disabled и одностороннего столкновения по тому же индексу.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
shapeIdx | int | — |
shape | Rid | — |
BodySetShapeAsOneWayCollision2 перегрузки
public static void BodySetShapeAsOneWayCollision(Rid body, int shapeIdx, bool enable, float margin);Задает свойства одностороннего столкновения формы тела с заданным индексом. Если enable равно true, направление одностороннего столкновения, заданное direction в локальном пространстве формы (то есть body_get_shape_transform(body, shape_idx).basis_xform(direction).normalized() в локальном пространстве тела), будет использоваться для игнорирования столкновений с формой в противоположном направлении и для обеспечения депенетрации кинематических тел в этом направлении.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
shapeIdx | int | — |
enable | bool | — |
margin | float | — |
public static void BodySetShapeAsOneWayCollision(Rid body, int shapeIdx, bool enable, float margin, Vector2? direction = default);Задает свойства одностороннего столкновения формы тела с заданным индексом. Если enable равно true, направление одностороннего столкновения, заданное direction в локальном пространстве формы (то есть body_get_shape_transform(body, shape_idx).basis_xform(direction).normalized() в локальном пространстве тела), будет использоваться для игнорирования столкновений с формой в противоположном направлении и для обеспечения депенетрации кинематических тел в этом направлении.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
shapeIdx | int | — |
enable | bool | — |
margin | float | — |
direction | Vector2? | default |
directionЕсли параметр не имеет значения, то значение по умолчанию: new Vector2(0.0f, 1.0f).
BodySetShapeDisabledvoid
public static void BodySetShapeDisabled(Rid body, int shapeIdx, bool disabled);Устанавливает отключенное свойство формы тела с заданным индексом. Если disabled равен true, то форма будет игнорироваться при всех обнаружениях столкновений.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
shapeIdx | int | — |
disabled | bool | — |
BodySetShapeTransformvoid
public static void BodySetShapeTransform(Rid body, int shapeIdx, Transform2D transform);Задает локальную матрицу преобразования формы тела с заданным индексом.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
shapeIdx | int | — |
transform | Transform2D | — |
BodySetSpacevoid
public static void BodySetSpace(Rid body, Rid space);Добавляет тело в заданное пространство после удаления тела из ранее назначенного пространства (если оно есть). Если режим тела установлен на PhysicsServer2D.BodyMode.Rigid, то добавление тела в пространство будет иметь следующие дополнительные эффекты:
- Если параметр
PhysicsServer2D.BodyParameter.CenterOfMassникогда не был задан явно, то значение этого параметра будет пересчитано на основе форм тела. - Если параметр
PhysicsServer2D.BodyParameter.Inertiaустановлен на значение<= 0.0, то значение этого параметра будет пересчитано на основе форм тела, массы и центра масс. Примечание: Чтобы удалить тело из пространства, не добавляя его обратно в другое место, используйтеPhysicsServer2D.body_set_space(body, RID()).
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
space | Rid | — |
BodySetStatevoid
public static void BodySetState(Rid body, PhysicsServer2D.BodyState state, Variant value);Устанавливает значение состояния тела. Примечание: Изменение состояния не вступает в силу немедленно. Состояние изменится в следующем физическом кадре.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
state | PhysicsServer2D.BodyState | — |
value | Variant | — |
BodySetStateSyncCallbackvoid
public static void BodySetStateSyncCallback(Rid body, Callable callable);Устанавливает функцию синхронизации вызова тела callable. Использовать пустоту Callable ([Код пропусков]Callable() чтобы освободить ответный звонок.
Функция callable будет называться каждой физической рамой, если предположить, что тело было активным во время предыдущей физики, и может быть использовано для получения последнего состояния с сервера физики.
Функция callable должны иметь следующие параметры:
state: aPhysicsDirectBodyState2D, использовал для восстановления состояния тела.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
callable | Callable | — |
BodyTestMotionbool
public static bool BodyTestMotion(Rid body, PhysicsTestMotionParameters2D parameters, PhysicsTestMotionResult2D result = null);Возвращает true, если столкновение возникнет в результате перемещения тела по вектору движения из заданной точки в пространстве. См. PhysicsTestMotionParameters2D для доступных параметров движения. При желании можно передать объект PhysicsTestMotionResult2D, который будет использоваться для хранения информации о полученном столкновении.
| Имя | Тип | По умолчанию |
|---|---|---|
body | Rid | — |
parameters | PhysicsTestMotionParameters2D | — |
result | PhysicsTestMotionResult2D | null |
boolCapsuleShapeCreateRid
public static Rid CapsuleShapeCreate();Создает форму капсулы 2D на физическом сервере и возвращает Rid, который ее идентифицирует. Используйте PhysicsServer2D.ShapeSetData, чтобы задать высоту и радиус капсулы.
RidCircleShapeCreateRid
public static Rid CircleShapeCreate();Создает 2D-круг на физическом сервере и возвращает Rid, который его идентифицирует. Используйте PhysicsServer2D.ShapeSetData, чтобы задать радиус круга.
RidConcavePolygonShapeCreateRid
public static Rid ConcavePolygonShapeCreate();Создает 2D вогнутую многоугольную форму на физическом сервере и возвращает Rid, который ее идентифицирует. Используйте PhysicsServer2D.ShapeSetData, чтобы задать сегменты вогнутого многоугольника.
##выпущенный_полигон_шап_создание
RidConvexPolygonShapeCreateRid
public static Rid ConvexPolygonShapeCreate();Создает 2D выпуклую многоугольную форму на физическом сервере и возвращает Rid, который ее идентифицирует. Используйте PhysicsServer2D.ShapeSetData для установки точек выпуклого многоугольника.
RidDampedSpringJointGetParamfloat
public static float DampedSpringJointGetParam(Rid joint, PhysicsServer2D.DampedSpringParam param);Возвращает значение заданного параметра демпфированного пружинного соединения (весенний сустав).
| Имя | Тип | По умолчанию |
|---|---|---|
joint | Rid | — |
param | PhysicsServer2D.DampedSpringParam | — |
floatDampedSpringJointSetParamvoid
public static void DampedSpringJointSetParam(Rid joint, PhysicsServer2D.DampedSpringParam param, float value);Устанавливает значение заданного параметра демпфированного пружинного соединения (весенний сустав).
| Имя | Тип | По умолчанию |
|---|---|---|
joint | Rid | — |
param | PhysicsServer2D.DampedSpringParam | — |
value | float | — |
FreeRidvoid
GetProcessInfoint
public static int GetProcessInfo(PhysicsServer2D.ProcessInfo processInfo);Возвращает значение состояния физического движка, заданное process_info.
| Имя | Тип | По умолчанию |
|---|---|---|
processInfo | PhysicsServer2D.ProcessInfo | — |
intJointClearvoid
public static void JointClear(Rid joint);Уничтожает соединение с указанным Rid, создает новое неинициализированное соединение и заставляет Rid ссылаться на это новое соединение.
| Имя | Тип | По умолчанию |
|---|---|---|
joint | Rid | — |
JointCreateRid
public static Rid JointCreate();Создает 2D-соединение на физическом сервере и возвращает Rid, который его идентифицирует. Чтобы задать тип соединения, используйте PhysicsServer2D.JointMakeDampedSpring, PhysicsServer2D.JointMakeGroove или PhysicsServer2D.JointMakePin. Используйте PhysicsServer2D.JointSetParam для задания общих параметров соединения.
RidJointDisableCollisionsBetweenBodiesvoid
public static void JointDisableCollisionsBetweenBodies(Rid joint, bool disable);Устанавливает, будут ли тела, прикрепленные к Joint2D, сталкиваться друг с другом.
| Имя | Тип | По умолчанию |
|---|---|---|
joint | Rid | — |
disable | bool | — |
JointGetParamfloat
public static float JointGetParam(Rid joint, PhysicsServer2D.JointParam param);Возвращает значение указанного параметра соединения.
| Имя | Тип | По умолчанию |
|---|---|---|
joint | Rid | — |
param | PhysicsServer2D.JointParam | — |
floatJointGetTypePhysicsServer2D.JointType
public static PhysicsServer2D.JointType JointGetType(Rid joint);Возвращает тип соединения.
| Имя | Тип | По умолчанию |
|---|---|---|
joint | Rid | — |
PhysicsServer2D.JointTypeJointIsDisabledCollisionsBetweenBodiesbool
public static bool JointIsDisabledCollisionsBetweenBodies(Rid joint);Возвращает, будут ли тела, прикрепленные к Joint2D, сталкиваться друг с другом.
| Имя | Тип | По умолчанию |
|---|---|---|
joint | Rid | — |
boolJointMakeDampedSpringvoid
public static void JointMakeDampedSpring(Rid joint, Vector2 anchorA, Vector2 anchorB, Rid bodyA, Rid bodyB = default);Делает сочленение демпфированным пружинным сочленением, прикрепленным в точке anchor_a (заданной в глобальных координатах) на теле body_a и в точке anchor_b (заданной в глобальных координатах) на теле body_b. Чтобы задать параметры, специфичные для демпфированной пружины, см. PhysicsServer2D.DampedSpringJointSetParam.
| Имя | Тип | По умолчанию |
|---|---|---|
joint | Rid | — |
anchorA | Vector2 | — |
anchorB | Vector2 | — |
bodyA | Rid | — |
bodyB | Rid | default |
JointMakeGroovevoid
public static void JointMakeGroove(Rid joint, Vector2 groove1A, Vector2 groove2A, Vector2 anchorB, Rid bodyA = default, Rid bodyB = default);Делает соединение пазовым.
| Имя | Тип | По умолчанию |
|---|---|---|
joint | Rid | — |
groove1A | Vector2 | — |
groove2A | Vector2 | — |
anchorB | Vector2 | — |
bodyA | Rid | default |
bodyB | Rid | default |
JointMakePinvoid
public static void JointMakePin(Rid joint, Vector2 anchor, Rid bodyA, Rid bodyB = default);Делает сочленение штифтовым. Если body_b — пустой Rid, то body_a прикрепляется к точке anchor (заданной в глобальных координатах); в противном случае body_a прикрепляется к body_b в точке anchor (заданной в глобальных координатах). Чтобы задать параметры, специфичные для штифтового сочленения, см. PhysicsServer2D.PinJointSetParam.
| Имя | Тип | По умолчанию |
|---|---|---|
joint | Rid | — |
anchor | Vector2 | — |
bodyA | Rid | — |
bodyB | Rid | default |
JointSetParamvoid
public static void JointSetParam(Rid joint, PhysicsServer2D.JointParam param, float value);Устанавливает значение указанного параметра соединения.
| Имя | Тип | По умолчанию |
|---|---|---|
joint | Rid | — |
param | PhysicsServer2D.JointParam | — |
value | float | — |
PinJointGetFlagbool
public static bool PinJointGetFlag(Rid joint, PhysicsServer2D.PinJointFlag flag);Получает флаг штифтового соединения (сустав).
| Имя | Тип | По умолчанию |
|---|---|---|
joint | Rid | — |
flag | PhysicsServer2D.PinJointFlag | — |
boolPinJointGetParamfloat
public static float PinJointGetParam(Rid joint, PhysicsServer2D.PinJointParam param);Возвращает значение параметра штифтового соединения (сустав).
| Имя | Тип | По умолчанию |
|---|---|---|
joint | Rid | — |
param | PhysicsServer2D.PinJointParam | — |
floatPinJointSetFlagvoid
public static void PinJointSetFlag(Rid joint, PhysicsServer2D.PinJointFlag flag, bool enabled);Устанавливает флаг штифтового соединения (сустав).
| Имя | Тип | По умолчанию |
|---|---|---|
joint | Rid | — |
flag | PhysicsServer2D.PinJointFlag | — |
enabled | bool | — |
PinJointSetParamvoid
public static void PinJointSetParam(Rid joint, PhysicsServer2D.PinJointParam param, float value);Устанавливает параметр штифтового соединения.
| Имя | Тип | По умолчанию |
|---|---|---|
joint | Rid | — |
param | PhysicsServer2D.PinJointParam | — |
value | float | — |
RectangleShapeCreateRid
public static Rid RectangleShapeCreate();Создает 2D-прямоугольную форму на физическом сервере и возвращает Rid, который ее идентифицирует. Используйте PhysicsServer2D.ShapeSetData, чтобы задать половинные размеры прямоугольника.
RidSegmentShapeCreateRid
public static Rid SegmentShapeCreate();Создает форму 2D-сегмента на физическом сервере и возвращает Rid, который его идентифицирует. Используйте PhysicsServer2D.ShapeSetData, чтобы задать начальную и конечную точки сегмента.
RidSeparationRayShapeCreateRid
public static Rid SeparationRayShapeCreate();Создает форму луча разделения 2D на физическом сервере и возвращает Rid, который ее идентифицирует. Используйте PhysicsServer2D.ShapeSetData, чтобы задать свойства формы length и slide_on_slope.
RidSetActivevoid
public static void SetActive(bool active);Активирует или деактивирует сервер 2D-физики. Если active равен false, то сервер физики не будет ничего делать на своем шаге физики.
| Имя | Тип | По умолчанию |
|---|---|---|
active | bool | — |
ShapeGetDataVariant
public static Variant ShapeGetData(Rid shape);Возвращает данные формы, которые определяют конфигурацию формы, например, полупространства прямоугольника или сегменты вогнутой формы. См. PhysicsServer2D.ShapeSetData для точного формата этих данных в каждом случае.
| Имя | Тип | По умолчанию |
|---|---|---|
shape | Rid | — |
VariantShapeGetTypePhysicsServer2D.ShapeType
public static PhysicsServer2D.ShapeType ShapeGetType(Rid shape);Возвращает тип фигуры.
| Имя | Тип | По умолчанию |
|---|---|---|
shape | Rid | — |
PhysicsServer2D.ShapeTypeShapeSetDatavoid
public static void ShapeSetData(Rid shape, Variant data);Устанавливает данные о форме, определяющие конфигурацию формы. data который будет передан, зависит от типа формы (см. PhysicsServer2D.ShapeGetType):
PhysicsServer2D.ShapeType.WorldBoundary:: два ряда длины, содержащие aVector2normalнаправление и a [float] расстояниеd,PhysicsServer2D.ShapeType.SeparationRay: словарь, содержащий ключlengthс а [float] стоимость и ключslide_on_slopeс а [bool] значение,PhysicsServer2D.ShapeType.Segment: aRect2rectв котором содержится первый пункт сегментаrect.positionи второй момент сегментаrect.size,PhysicsServer2D.ShapeType.Circle: a [float]radius,PhysicsServer2D.ShapeType.Rectangle: aVector2half_extents,PhysicsServer2D.ShapeType.Capsule: диапазон длины два (или aVector2) с указанием [float]heightи a [float]radius,PhysicsServer2D.ShapeType.ConvexPolygon:: либо aVector2[]из точек, определяющих выпуклый многоугольник в порядке против часовой стрелки (по часовой стрелке каждый сегмент, образованный последовательными точками, рассчитывается внутри) или afloat[]Длина, делимая на четыре таким образом, чтобы каждые 4-тюблю [float] содержит координаты точки, за которой следуют координаты обычного вектора по часовой стрелке между текущей и следующей точками,PhysicsServer2D.ShapeType.ConcavePolygon: aVector2[]Длина, делимая на две (каждая пара точек образует один сегмент). Предупреждение: В случаеPhysicsServer2D.ShapeType.ConvexPolygon, этот метод не проверяет, действительно ли поставленные точки образуют выпуклый многоугольник (не какCollisionPolygon2D.Polygon- имущество).
| Имя | Тип | По умолчанию |
|---|---|---|
shape | Rid | — |
data | Variant | — |
SpaceCreateRid
public static Rid SpaceCreate();Создает 2D-пространство на физическом сервере и возвращает Rid, который его идентифицирует. Пространство содержит тела и области и управляет пошаговым выполнением физической симуляции объектов в нем.
RidSpaceGetDirectStatePhysicsDirectSpaceState2D
public static PhysicsDirectSpaceState2D SpaceGetDirectState(Rid space);Возвращает состояние пространства, PhysicsDirectSpaceState2D. Этот объект может использоваться для запросов на столкновение/пересечение.
| Имя | Тип | По умолчанию |
|---|---|---|
space | Rid | — |
PhysicsDirectSpaceState2DSpaceGetParamfloat
public static float SpaceGetParam(Rid space, PhysicsServer2D.SpaceParameter param);Возвращает значение указанного параметра пространства.
| Имя | Тип | По умолчанию |
|---|---|---|
space | Rid | — |
param | PhysicsServer2D.SpaceParameter | — |
floatSpaceIsActivebool
public static bool SpaceIsActive(Rid space);Возвращает true, если пространство активно.
| Имя | Тип | По умолчанию |
|---|---|---|
space | Rid | — |
boolSpaceSetActivevoid
public static void SpaceSetActive(Rid space, bool active);Активирует или деактивирует пространство. Если active равен false, то физический сервер не будет ничего делать с этим пространством на своем физическом шаге.
| Имя | Тип | По умолчанию |
|---|---|---|
space | Rid | — |
active | bool | — |
SpaceSetParamvoid
public static void SpaceSetParam(Rid space, PhysicsServer2D.SpaceParameter param, float value);Устанавливает значение указанного параметра пространства.
| Имя | Тип | По умолчанию |
|---|---|---|
space | Rid | — |
param | PhysicsServer2D.SpaceParameter | — |
value | float | — |
WorldBoundaryShapeCreateRid
public static Rid WorldBoundaryShapeCreate();Создает форму границы 2D-мира на физическом сервере и возвращает Rid, который ее идентифицирует. Используйте PhysicsServer2D.ShapeSetData, чтобы задать нормальное направление формы и свойства расстояния.
RidPhysicsServer2D.AreaBodyStatus
| Значение | Описание |
|---|---|
Added = 0 | Значение первого параметра и функция обратного вызова области получает, когда объект входит в одну из ее фигур. |
Removed = 1 | Значение первого параметра и функция обратного вызова области получает, когда объект выходит из одной из своих фигур. |
PhysicsServer2D.AreaParameter
| Значение | Описание |
|---|---|
AngularDamp = 8 | Константа для установки/получения углового коэффициента затухания области. Значение этого параметра по умолчанию |
AngularDampOverrideMode = 7 | Константа для установки/получения режима переопределения углового демпфирования в области. См. |
Gravity = 1 | Константа для установки/получения силы гравитации в области. Значение этого параметра по умолчанию |
GravityIsPoint = 3 | Константа для установки/получения того, является ли вектор гравитации области направлением или центральной точкой. Значение этого параметра по умолчанию — |
GravityOverrideMode = 0 | Константа для установки/получения режима переопределения гравитации в области. См. |
GravityPointUnitDistance = 4 | Постоянно устанавливать/получать расстояние, на котором сила тяжести равна гравитации, контролируемой |
GravityVector = 2 | Константа для установки/получения вектора/центра гравитации в области. Значение этого параметра по умолчанию: |
LinearDamp = 6 | Константа для установки/получения линейного коэффициента затухания области. Значение этого параметра по умолчанию |
LinearDampOverrideMode = 5 | Константа для установки/получения режима переопределения линейного затухания в области. См. |
Priority = 9 | Константа для установки/получения приоритета (порядка обработки) области. Значение этого параметра по умолчанию |
PhysicsServer2D.AreaSpaceOverrideMode
| Значение | Описание |
|---|---|
Combine = 1 | Эта область добавляет свои значения гравитации/влажности к тому, что было рассчитано до сих пор. Таким образом, многие перекрывающиеся области могут объединить свою физику, чтобы создать интересные эффекты. |
CombineReplace = 2 | Эта область добавляет свои значения гравитации/влажности ко всему, что было рассчитано до сих пор. Затем перестает учитывать остальные области, даже область по умолчанию. |
Disabled = 0 | Эта область не влияет на гравитацию/влажность. Это, как правило, области, которые существуют только для обнаружения столкновений и объектов, входящих или выходящих из них. |
Replace = 3 | Эта область заменяет любую гравитацию/влажность, даже заданную по умолчанию, и прекращает учитывать остальные области. |
ReplaceCombine = 4 | Эта область заменяет все рассчитанные до сих пор значения гравитации/влажности, но продолжает рассчитывать остальные области, вплоть до области по умолчанию. |
PhysicsServer2D.BodyDampMode
| Значение | Описание |
|---|---|
Combine = 0 | Значение демпфирования тела добавляется к любому значению, заданному в областях, или к значению по умолчанию. |
Replace = 1 | Значение демпфирования тела заменяет любое значение, заданное в областях, или значение по умолчанию. |
PhysicsServer2D.BodyMode
| Значение | Описание |
|---|---|
Kinematic = 1 | Константа для кинематических тел. В этом режиме тело может перемещаться только пользовательским кодом и сталкиваться с другими телами на своем пути. |
Rigid = 2 | Постоянная для твердых тел. В этом режиме тело может толкаться другими телами и к нему могут быть приложены силы. |
RigidLinear = 3 | Постоянная для линейных твердых тел. В этом режиме тело не может вращаться, и только его линейная скорость подвержена влиянию внешних сил. |
Static = 0 | Константа для статических тел. В этом режиме тело может перемещаться только пользовательским кодом и не сталкивается с другими телами на своем пути при перемещении. |
PhysicsServer2D.BodyParameter
| Значение | Описание |
|---|---|
AngularDamp = 9 | Константа для установки/получения углового коэффициента демпфирования тела. Значение этого параметра по умолчанию |
AngularDampMode = 7 | Константа для установки/получения режима углового демпфирования тела. См. |
Bounce = 0 | Константа для установки/получения коэффициента отскока тела. Значение этого параметра по умолчанию |
CenterOfMass = 4 | Константа для установки/получения положения центра масс тела в его локальной системе координат. Значение этого параметра по умолчанию — |
Friction = 1 | Константа для установки/получения трения тела. Значение этого параметра по умолчанию |
GravityScale = 5 | Константа для установки/получения множителя гравитации тела. Значение этого параметра по умолчанию |
Inertia = 3 | Константа для установки/получения инерции тела. Значение этого параметра по умолчанию |
LinearDamp = 8 | Константа для установки/получения линейного коэффициента затухания тела. Значение этого параметра по умолчанию |
LinearDampMode = 6 | Константа для установки/получения линейного режима демпфирования тела. См. |
Mass = 2 | Константа для установки/получения массы тела. Значение этого параметра по умолчанию —
|
Max = 10 | Представляет размер перечисления |
PhysicsServer2D.BodyState
| Значение | Описание |
|---|---|
AngularVelocity = 2 | Константа для установки/получения текущей угловой скорости тела. |
CanSleep = 4 | Константа для установки/получения информации о том, может ли тело спать. |
LinearVelocity = 1 | Константа для установки/получения текущей линейной скорости тела. |
Sleeping = 3 | Постоянно, чтобы заснуть/разбудить тело или узнать, спит ли оно. |
Transform = 0 | Константа для установки/получения текущей матрицы преобразования тела. |
PhysicsServer2D.CcdMode
| Значение | Описание |
|---|---|
CastRay = 1 | Позволяет непрерывно обнаруживать столкновения с помощью raycasting. Это быстрее, чем shapecasting, но менее точно. |
CastShape = 2 | Позволяет непрерывно обнаруживать столкновения с помощью шейпкастинга. Это самый медленный метод ПЗС, но и самый точный. |
Disabled = 0 | Отключает непрерывное обнаружение столкновений. Это самый быстрый способ обнаружения столкновений тел, но он может пропустить небольшие и/или быстро движущиеся объекты. |
PhysicsServer2D.DampedSpringParam
| Значение | Описание |
|---|---|
Damping = 2 | Устанавливает коэффициент демпфирования пружинного соединения. Значение 0 указывает на недемпфированную пружину, а значение 1 заставляет систему достигать равновесия как можно быстрее (критическое демпфирование). Значение этого параметра по умолчанию — |
RestLength = 0 | Устанавливает длину покоя пружинного соединения. Соединение всегда будет пытаться вернуться на эту длину при раздвижении. Значение этого параметра по умолчанию — расстояние между точками крепления соединения. |
Stiffness = 1 | Устанавливает жесткость пружинного соединения. Соединение прикладывает силу, равную жесткости, умноженной на расстояние от его длины покоя. Значение этого параметра по умолчанию — |
PhysicsServer2D.JointParam
| Значение | Описание |
|---|---|
Bias = 0 | Константа для установки/получения того, насколько быстро сочленение тянет тела назад, чтобы удовлетворить ограничение сочленения. Чем ниже значение, тем больше два тела могут тянуть сочленение. Значение этого параметра по умолчанию — |
MaxBias = 1 | Константа для установки/получения максимальной скорости, с которой сочленение может применять исправления. Значение этого параметра по умолчанию — |
MaxForce = 2 | Константа для установки/получения максимальной силы, которую может использовать соединение для воздействия на два тела. Значение этого параметра по умолчанию — |
PhysicsServer2D.JointType
| Значение | Описание |
|---|---|
DampedSpring = 2 | Константа для создания демпфирующих пружинных соединений. |
Groove = 1 | Константа для создания пазов. |
Max = 3 | Представляет размер перечисления |
Pin = 0 | Константа для создания штифтовых соединений. |
PhysicsServer2D.PinJointFlag
| Значение | Описание |
|---|---|
AngularLimitEnabled = 0 | Если |
MotorEnabled = 1 | Если |
PhysicsServer2D.PinJointParam
| Значение | Описание |
|---|---|
LimitLower = 2 | Минимальное вращение вокруг штифта. |
LimitUpper = 1 | Максимальное вращение вокруг штифта. |
MotorTargetVelocity = 3 | Целевая скорость двигателя. В радианах в секунду. |
Softness = 0 | Константа для установки/получения того, насколько может изгибаться соединение штифтового соединения. Значение этого параметра по умолчанию — |
PhysicsServer2D.ProcessInfo
| Значение | Описание |
|---|---|
ActiveObjects = 0 | Константа для получения количества объектов, которые не спят. |
CollisionPairs = 1 | Константа для получения количества возможных столкновений. |
IslandCount = 2 | Константа для получения количества областей пространства, где может произойти столкновение. |
PhysicsServer2D.ShapeType
| Значение | Описание |
|---|---|
Capsule = 5 | Это константа для создания форм капсул. Форма капсулы определяется радиусом и длиной. Ее можно использовать для пересечений и внутренних/внешних проверок. |
Circle = 3 | Это константа для создания круговых форм. Круговая форма имеет только радиус. Ее можно использовать для пересечений и внутренних/внешних проверок. |
ConcavePolygon = 7 | Это константа для создания вогнутых многоугольных фигур. Многоугольник определяется списком точек. Его можно использовать для проверки пересечений, но не для проверки внутри/снаружи. |
ConvexPolygon = 6 | Это константа для создания выпуклых многоугольных фигур. Многоугольник определяется списком точек. Его можно использовать для пересечений и внутренних/внешних проверок. |
Custom = 8 | Эта константа используется внутри движка. Любая попытка создать такую форму приведет к ошибке. |
Rectangle = 4 | Это константа для создания прямоугольных форм. Прямоугольная форма определяется шириной и высотой. Ее можно использовать для пересечений и внутренних/внешних проверок. |
Segment = 2 | Это константа для создания сегментных форм. Сегментная форма — это конечная линия от точки A до точки B. Ее можно проверить на пересечения. |
SeparationRay = 1 | Это константа для создания форм разделительного луча. Разделительный луч определяется длиной и отделяет себя от того, что касается его дальней конечной точки. Полезно для контроллеров персонажей. |
WorldBoundary = 0 | Это константа для создания форм границ мира. Форма границ мира — это бесконечная линия с начальной точкой и нормалью. Таким образом, ее можно использовать для проверок спереди/сзади. |
PhysicsServer2D.SpaceParameter
| Значение | Описание |
|---|---|
BodyAngularVelocitySleepThreshold = 5 | Константа для установки/получения пороговой угловой скорости активности. Тело, отмеченное как потенциально неактивное как для линейной, так и для угловой скорости, будет переведено в спящий режим по истечении указанного времени. Значение этого параметра по умолчанию — |
BodyLinearVelocitySleepThreshold = 4 | Константа для установки/получения пороговой линейной скорости активности. Тело, отмеченное как потенциально неактивное как для линейной, так и для угловой скорости, будет переведено в спящий режим по истечении указанного времени. Значение этого параметра по умолчанию — |
BodyTimeToSleep = 6 | Константа для установки/получения максимального времени активности. Тело, отмеченное как потенциально неактивное как для линейной, так и для угловой скорости, будет переведено в спящий режим по истечении этого времени. Значение этого параметра по умолчанию — |
ConstraintDefaultBias = 7 | Константа для установки/получения смещения решателя по умолчанию для всех физических ограничений. Смещение решателя — это фактор, контролирующий, насколько два объекта «отскакивают» после нарушения ограничения, чтобы не оставлять их в этом состоянии из-за числовой неточности. Значение этого параметра по умолчанию — |
ContactDefaultBias = 3 | Константа для установки/получения смещения решателя по умолчанию для всех физических контактов. Смещение решателя — это фактор, контролирующий, насколько два объекта «отскакивают» после наложения, чтобы избежать их оставления в этом состоянии из-за числовой неточности. Значение этого параметра по умолчанию — |
ContactMaxAllowedPenetration = 2 | Константа для установки/получения максимального расстояния, на которое фигура может проникнуть в другую фигуру, прежде чем это будет считаться столкновением. Значение этого параметра по умолчанию — |
ContactMaxSeparation = 1 | Константа для установки/получения максимального расстояния между фигурами, на котором они могут находиться, прежде чем они будут считаться разделенными, а контакт будет отброшен. Значение этого параметра по умолчанию — |
ContactRecycleRadius = 0 | Константа для установки/получения максимального расстояния, на которое должна переместиться пара тел, прежде чем их статус столкновения придется пересчитать. Значение этого параметра по умолчанию — |
SolverIterations = 8 | Константа для установки/получения количества итераций решателя для всех контактов и ограничений. Чем больше количество итераций, тем точнее будут столкновения. Однако большее количество итераций требует большей мощности ЦП, что может снизить производительность. Значение этого параметра по умолчанию — |