reckfellENGINE

PhysicsServer2D

Серверный интерфейс для низкоуровневого доступа к 2D-физике.

На этой странице
class PhysicsServer2DReckfellSharp

Серверный интерфейс для низкоуровневого доступа к 2D-физике.

PhysicsServer2D — сервер, отвечающий за всю 2D-физику. Он может напрямую создавать и управлять всеми физическими объектами:

  • пространство — это самодостаточный мир для физического моделирования. Оно содержит тела, области и сочленения. Его состояние может быть запрошено для получения информации о столкновениях и пересечениях, и можно изменить несколько параметров моделирования.
  • форма — это геометрическая форма, такая как круг, прямоугольник, капсула или многоугольник. Ее можно использовать для обнаружения столкновений, добавив ее к телу/области, возможно, с дополнительным преобразованием относительно начала координат тела/области. Тела/области могут иметь несколько (преобразованных) форм, добавленных к ним, и одна форма может быть добавлена к телам/областям несколько раз с различными локальными преобразованиями.
  • тело — это физический объект, который может находиться в статическом, кинематическом или жестком режиме. Его состояние (такое как положение и скорость) можно запрашивать и обновлять. Обратный вызов интеграции силы может быть установлен для настройки физики тела.
  • область - это область в пространстве, которая может использоваться для обнаружения тел и областей, входящих и выходящих из нее. Обратный вызов мониторинга тела может быть установлен для сообщения о входе/выходе форм тела, и аналогичным образом может быть установлен обратный вызов мониторинга области. Гравитация и демпфирование могут быть переопределены в области путем установки параметров области.
  • соединение - это ограничение, либо между двумя телами, либо на одном теле относительно точки. Такие параметры, как смещение сочленения и остаточная длина пружинного соединения, могут быть скорректированы. Физические объекты в PhysicsServer2D могут быть созданы и изменены независимо; они не должны быть привязаны к узлам в дереве сцены. Примечание: Все узлы 2D-физики используют физический сервер внутренне. Добавление физического узла в дерево сцены приведет к созданию соответствующего физического объекта на физическом сервере. Узел твердого тела регистрирует обратный вызов, который обновляет преобразование узла с преобразованием соответствующего объекта тела на физическом сервере (каждое обновление физики). Узел области регистрирует обратный вызов, чтобы информировать узел области о перекрытиях с соответствующим объектом области на физическом сервере. Узел raycast запрашивает прямое состояние соответствующего пространства на физическом сервере.

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

Свойства1

SingletonСвойство
# Singleton
C#
public static PhysicsServer2DInstance Singleton { get; }

Методы120

AreaAddShapevoid
# AreaAddShape
C#
public static void AreaAddShape(Rid area, Rid shape, Transform2D? transform = default, bool disabled = false);

Добавляет фигуру к области с заданным локальным преобразованием. Фигура (вместе со своими свойствами transform и disabled) добавляется в массив фигур, а фигуры области обычно ссылаются по их индексу в этом массиве.

Параметры
ИмяТипПо умолчанию
areaRid—
shapeRid—
transformTransform2D?default
disabledboolfalse
transform

Если параметр не имеет значения, то значение по умолчанию: Transform2D.Identity.

AreaAttachCanvasInstanceIdvoid
# AreaAttachCanvasInstanceId
C#
public static void AreaAttachCanvasInstanceId(Rid area, ulong id);

Прикрепляет ObjectID холста к области. Используйте ReckfellObject.GetInstanceId, чтобы получить ObjectID для CanvasLayer.

Параметры
ИмяТипПо умолчанию
areaRid—
idulong—
AreaAttachObjectInstanceIdvoid
# AreaAttachObjectInstanceId
C#
public static void AreaAttachObjectInstanceId(Rid area, ulong id);

Прикрепляет ObjectID ReckfellObject к области. Используйте ReckfellObject.GetInstanceId, чтобы получить ObjectID для CollisionObject2D.

Параметры
ИмяТипПо умолчанию
areaRid—
idulong—
AreaClearShapesvoid
# AreaClearShapes
C#
public static void AreaClearShapes(Rid area);

Удаляет все фигуры из области. Это не удаляет сами фигуры, поэтому их можно продолжать использовать в другом месте или добавлять обратно позже.

Параметры
ИмяТипПо умолчанию
areaRid—
AreaCreateRid
# AreaCreate
C#
public static Rid AreaCreate();

Создает объект 2D-области на физическом сервере и возвращает Rid, который его идентифицирует. Настройки по умолчанию для созданной области включают слой столкновений и маску, установленные на 1, и monitorable, установленные на false. Используйте PhysicsServer2D.AreaAddShape, чтобы добавить к нему формы, используйте PhysicsServer2D.AreaSetTransform, чтобы задать его преобразование, и используйте PhysicsServer2D.AreaSetSpace, чтобы добавить область в пространство. Если вы хотите, чтобы область была обнаруживаемой, используйте PhysicsServer2D.AreaSetMonitorable.

Возвращает Rid
AreaGetCanvasInstanceIdulong
# AreaGetCanvasInstanceId
C#
public static ulong AreaGetCanvasInstanceId(Rid area);

Возвращает ObjectID холста, прикрепленного к области. Используйте @GlobalScope.instance_from_id, чтобы получить CanvasLayer из ненулевого ObjectID.

Параметры
ИмяТипПо умолчанию
areaRid—
Возвращает ulong
AreaGetCollisionLayeruint
# AreaGetCollisionLayer
C#
public static uint AreaGetCollisionLayer(Rid area);

Возвращает физический слой или слои, к которым принадлежит область, в виде битовой маски.

Параметры
ИмяТипПо умолчанию
areaRid—
Возвращает uint
AreaGetCollisionMaskuint
# AreaGetCollisionMask
C#
public static uint AreaGetCollisionMask(Rid area);

Возвращает физический слой или слои, с которыми может контактировать область, в виде битовой маски.

Параметры
ИмяТипПо умолчанию
areaRid—
Возвращает uint
AreaGetObjectInstanceIdulong
# AreaGetObjectInstanceId
C#
public static ulong AreaGetObjectInstanceId(Rid area);

Возвращает ObjectID, прикрепленный к области. Используйте @GlobalScope.instance_from_id, чтобы извлечь ReckfellObject из ненулевого ObjectID.

Параметры
ИмяТипПо умолчанию
areaRid—
Возвращает ulong
AreaGetParamVariant
# AreaGetParam
C#
public static Variant AreaGetParam(Rid area, PhysicsServer2D.AreaParameter param);

Возвращает значение заданного параметра площади.

Параметры
ИмяТипПо умолчанию
areaRid—
paramPhysicsServer2D.AreaParameter—
Возвращает Variant
AreaGetShapeRid
# AreaGetShape
C#
public static Rid AreaGetShape(Rid area, int shapeIdx);

Возвращает Rid фигуры с указанным индексом в массиве фигур области.

Параметры
ИмяТипПо умолчанию
areaRid—
shapeIdxint—
Возвращает Rid
AreaGetShapeCountint
# AreaGetShapeCount
C#
public static int AreaGetShapeCount(Rid area);

Возвращает количество фигур, добавленных в область.

Параметры
ИмяТипПо умолчанию
areaRid—
Возвращает int
AreaGetShapeTransformTransform2D
# AreaGetShapeTransform
C#
public static Transform2D AreaGetShapeTransform(Rid area, int shapeIdx);

Возвращает матрицу локального преобразования фигуры с заданным индексом в массиве фигур области.

Параметры
ИмяТипПо умолчанию
areaRid—
shapeIdxint—
Возвращает Transform2D
AreaGetSpaceRid
# AreaGetSpace
C#
public static Rid AreaGetSpace(Rid area);

Возвращает Rid пространства, назначенного области. Возвращает пустой Rid, если пространство не назначено.

Параметры
ИмяТипПо умолчанию
areaRid—
Возвращает Rid
AreaGetTransformTransform2D
# AreaGetTransform
C#
public static Transform2D AreaGetTransform(Rid area);

Возвращает матрицу преобразования области.

Параметры
ИмяТипПо умолчанию
areaRid—
Возвращает Transform2D
AreaRemoveShapevoid
# AreaRemoveShape
C#
public static void AreaRemoveShape(Rid area, int shapeIdx);

Удаляет фигуру с указанным индексом из массива фигур области. Сама фигура не удаляется, поэтому ее можно использовать в другом месте или добавить обратно позже. В результате этой операции у фигур области, которые имели индексы выше shape_idx, индекс будет уменьшен на единицу.

Параметры
ИмяТипПо умолчанию
areaRid—
shapeIdxint—
AreaSetAreaMonitorCallbackvoid
# AreaSetAreaMonitorCallback
C#
public static void AreaSetAreaMonitorCallback(Rid area, Callable callback);

Устанавливает обратный вызов монитора области. Этот обратный вызов будет вызван, когда любая другая (форма) области входит или выходит из (формы) заданной области, и должен принимать следующие пять параметров:

  1. целое число status: либо PhysicsServer2D.AreaBodyStatus.Added или PhysicsServer2D.AreaBodyStatus.Removed в зависимости от того, вошла или вышла из области форма другой области,
  2. Rid area_rid: Rid другой области, которая вошла или вышла из области,
  3. целое число instance_id: ObjectID, прикрепленный к другой области,
  4. целое число area_shape_idx: индекс формы другой области, которая вошла или вышла из области,
  5. целое число self_shape_idx: индекс формы области, в которую вошла или вышла другая область. Подсчитывая (или отслеживая) входящие и выходящие фигуры, можно определить, входит ли область (со всеми ее фигурами) в первый раз или выходит в последний раз.
Параметры
ИмяТипПо умолчанию
areaRid—
callbackCallable—
AreaSetCollisionLayervoid
# AreaSetCollisionLayer
C#
public static void AreaSetCollisionLayer(Rid area, uint layer);

Назначает область одному или нескольким физическим слоям с помощью битовой маски.

Параметры
ИмяТипПо умолчанию
areaRid—
layeruint—
AreaSetCollisionMaskvoid
# AreaSetCollisionMask
C#
public static void AreaSetCollisionMask(Rid area, uint mask);

Устанавливает, какие физические слои будет отслеживать область, с помощью битовой маски.

Параметры
ИмяТипПо умолчанию
areaRid—
maskuint—
AreaSetMonitorCallbackvoid
# AreaSetMonitorCallback
C#
public static void AreaSetMonitorCallback(Rid area, Callable callback);

Устанавливает обратный вызов монитора тела области. Этот обратный вызов будет вызван, когда любое другое (форма) тело входит или выходит (форма) из заданной области, и должен принимать следующие пять параметров:

  1. целое число status: либо PhysicsServer2D.AreaBodyStatus.Added или PhysicsServer2D.AreaBodyStatus.Removed в зависимости от того, вошла или вышла из области другая форма тела,
  2. Rid body_rid: Rid тела, которое вошло или вышло из области,
  3. целое число instance_id: ObjectID, прикрепленный к телу,
  4. целое число body_shape_idx: индекс формы тела, которое вошло или вышло из области,
  5. целое число self_shape_idx: индекс формы области, в которую тело вошло или вышло. Подсчитывая (или отслеживая) входящие и выходящие формы, можно определить, входит ли тело (со всеми его формами) в первый раз или выходит в последний раз.
Параметры
ИмяТипПо умолчанию
areaRid—
callbackCallable—
AreaSetMonitorablevoid
# AreaSetMonitorable
C#
public static void AreaSetMonitorable(Rid area, bool monitorable);

Устанавливает, является ли область контролируемой или нет. Если monitorable имеет значение true, обратный вызов мониторинга области других областей будет вызван, когда эта область входит в них или выходит из них.

Параметры
ИмяТипПо умолчанию
areaRid—
monitorablebool—
AreaSetParamvoid
# AreaSetParam
C#
public static void AreaSetParam(Rid area, PhysicsServer2D.AreaParameter param, Variant value);

Устанавливает значение заданного параметра области.

Параметры
ИмяТипПо умолчанию
areaRid—
paramPhysicsServer2D.AreaParameter—
valueVariant—
AreaSetShapevoid
# AreaSetShape
C#
public static void AreaSetShape(Rid area, int shapeIdx, Rid shape);

Заменяет форму области по указанному индексу на другую форму, не влияя на свойства transform и disabled по тому же индексу.

Параметры
ИмяТипПо умолчанию
areaRid—
shapeIdxint—
shapeRid—
AreaSetShapeDisabledvoid
# AreaSetShapeDisabled
C#
public static void AreaSetShapeDisabled(Rid area, int shapeIdx, bool disabled);

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

Параметры
ИмяТипПо умолчанию
areaRid—
shapeIdxint—
disabledbool—
AreaSetShapeTransformvoid
# AreaSetShapeTransform
C#
public static void AreaSetShapeTransform(Rid area, int shapeIdx, Transform2D transform);

Задает матрицу локального преобразования формы области с заданным индексом.

Параметры
ИмяТипПо умолчанию
areaRid—
shapeIdxint—
transformTransform2D—
AreaSetSpacevoid
# AreaSetSpace
C#
public static void AreaSetSpace(Rid area, Rid space);

Добавляет область к указанному пространству после удаления области из ранее назначенного пространства (если таковое имеется). Примечание: Чтобы удалить область из пространства без немедленного добавления ее обратно в другое место, используйте PhysicsServer2D.area_set_space(area, RID()).

Параметры
ИмяТипПо умолчанию
areaRid—
spaceRid—
AreaSetTransformvoid
# AreaSetTransform
C#
public static void AreaSetTransform(Rid area, Transform2D transform);

Задает матрицу преобразования области.

Параметры
ИмяТипПо умолчанию
areaRid—
transformTransform2D—
BodyAddCollisionExceptionvoid
# BodyAddCollisionException
C#
public static void BodyAddCollisionException(Rid body, Rid exceptedBody);

Добавить excepted_body в перечень исключений из списка столкновений тела, так что столкновения с ним игнорируются.

Параметры
ИмяТипПо умолчанию
bodyRid—
exceptedBodyRid—
BodyAddConstantCentralForcevoid
# BodyAddConstantCentralForce
C#
public static void BodyAddConstantCentralForce(Rid body, Vector2 force);

Добавляет постоянную направленную силу к телу. Сила не влияет на вращение. Сила остается приложенной с течением времени, пока не будет очищена с помощью PhysicsServer2D.body_set_constant_force(body, Vector2(0, 0)). Это эквивалентно использованию PhysicsServer2D.BodyAddConstantForce в центре масс тела.

Параметры
ИмяТипПо умолчанию
bodyRid—
forceVector2—
BodyAddConstantForcevoid
# BodyAddConstantForce
C#
public static void BodyAddConstantForce(Rid body, Vector2 force, Vector2? position = default);

Добавляет постоянную позиционную силу к телу. Сила может влиять на вращение, если position отличается от центра масс тела. Сила остается приложенной с течением времени, пока не будет очищена с помощью PhysicsServer2D.body_set_constant_force(body, Vector2(0, 0)). position — это смещение от начала координат тела в глобальных координатах.

Параметры
ИмяТипПо умолчанию
bodyRid—
forceVector2—
positionVector2?default
position

Если параметр не имеет значения, то значение по умолчанию: new Vector2(0.0f, 0.0f).

BodyAddConstantTorquevoid
# BodyAddConstantTorque
C#
public static void BodyAddConstantTorque(Rid body, float torque);

Добавляет постоянную вращательную силу к телу. Сила не влияет на положение. Сила остается приложенной с течением времени, пока не будет очищена с помощью PhysicsServer2D.body_set_constant_torque(body, 0).

Параметры
ИмяТипПо умолчанию
bodyRid—
torquefloat—
BodyAddShapevoid
# BodyAddShape
C#
public static void BodyAddShape(Rid body, Rid shape, Transform2D? transform = default, bool disabled = false);

Добавляет фигуру к области с заданным локальным преобразованием. Фигура (вместе со своими свойствами transform и disabled) добавляется в массив фигур, а фигуры тела обычно ссылаются по их индексу в этом массиве.

Параметры
ИмяТипПо умолчанию
bodyRid—
shapeRid—
transformTransform2D?default
disabledboolfalse
transform

Если параметр не имеет значения, то значение по умолчанию: Transform2D.Identity.

BodyApplyCentralForcevoid
# BodyApplyCentralForce
C#
public static void BodyApplyCentralForce(Rid body, Vector2 force);

Применяет направленную силу к телу в центре масс тела. Сила не влияет на вращение. Сила зависит от времени и должна применяться при каждом обновлении физики. Это эквивалентно использованию PhysicsServer2D.BodyApplyForce в центре масс тела.

Параметры
ИмяТипПо умолчанию
bodyRid—
forceVector2—
BodyApplyCentralImpulsevoid
# BodyApplyCentralImpulse
C#
public static void BodyApplyCentralImpulse(Rid body, Vector2 impulse);

Применяет направленный импульс к телу в центре масс тела. Импульс не влияет на вращение. Импульс не зависит от времени! Применение импульса в каждом кадре приведет к силе, зависящей от частоты кадров. По этой причине его следует использовать только при моделировании одноразовых ударов (в противном случае используйте функции "_force"). Это эквивалентно использованию PhysicsServer2D.BodyApplyImpulse в центре масс тела.

Параметры
ИмяТипПо умолчанию
bodyRid—
impulseVector2—
BodyApplyForcevoid
# BodyApplyForce
C#
public static void BodyApplyForce(Rid body, Vector2 force, Vector2? position = default);

Применяет позиционированную силу к телу. Сила может влиять на вращение, если position отличается от центра масс тела. Сила зависит от времени и должна применяться при каждом обновлении физики. position — это смещение от начала координат тела в глобальных координатах.

Параметры
ИмяТипПо умолчанию
bodyRid—
forceVector2—
positionVector2?default
position

Если параметр не имеет значения, то значение по умолчанию: new Vector2(0.0f, 0.0f).

BodyApplyImpulsevoid
# BodyApplyImpulse
C#
public static void BodyApplyImpulse(Rid body, Vector2 impulse, Vector2? position = default);

Применяет позиционированный импульс к телу. Импульс может влиять на вращение, если position отличается от центра масс тела. Импульс не зависит от времени! Применение импульса в каждом кадре приведет к силе, зависящей от частоты кадров. По этой причине его следует использовать только при моделировании одноразовых ударов (в противном случае используйте функции "_force"). position — это смещение от начала координат тела в глобальных координатах.

Параметры
ИмяТипПо умолчанию
bodyRid—
impulseVector2—
positionVector2?default
position

Если параметр не имеет значения, то значение по умолчанию: new Vector2(0.0f, 0.0f).

BodyApplyTorquevoid
# BodyApplyTorque
C#
public static void BodyApplyTorque(Rid body, float torque);

Применяет вращательную силу к телу. Сила не влияет на положение. Сила зависит от времени и должна применяться при каждом обновлении физики.

Параметры
ИмяТипПо умолчанию
bodyRid—
torquefloat—
BodyApplyTorqueImpulsevoid
# BodyApplyTorqueImpulse
C#
public static void BodyApplyTorqueImpulse(Rid body, float impulse);

Применяет вращательный импульс к телу. Импульс не влияет на положение. Импульс не зависит от времени! Применение импульса в каждом кадре приведет к силе, зависящей от частоты кадров. По этой причине его следует использовать только при моделировании одноразовых ударов (в противном случае используйте функции "_force").

Параметры
ИмяТипПо умолчанию
bodyRid—
impulsefloat—
BodyAttachCanvasInstanceIdvoid
# BodyAttachCanvasInstanceId
C#
public static void BodyAttachCanvasInstanceId(Rid body, ulong id);

Прикрепляет ObjectID холста к телу. Используйте ReckfellObject.GetInstanceId, чтобы получить ObjectID CanvasLayer.

Параметры
ИмяТипПо умолчанию
bodyRid—
idulong—
BodyAttachObjectInstanceIdvoid
# BodyAttachObjectInstanceId
C#
public static void BodyAttachObjectInstanceId(Rid body, ulong id);

Прикрепляет ObjectID, из ReckfellObject, к телу. Используйте ReckfellObject.GetInstanceId, чтобы получить ObjectID CollisionObject2D.

Параметры
ИмяТипПо умолчанию
bodyRid—
idulong—
BodyClearShapesvoid
# BodyClearShapes
C#
public static void BodyClearShapes(Rid body);

Удаляет все фигуры из тела. Это не удаляет сами фигуры, поэтому их можно продолжать использовать в другом месте или добавлять обратно позже.

Параметры
ИмяТипПо умолчанию
bodyRid—
BodyCreateRid
# BodyCreate
C#
public static Rid BodyCreate();

Создает объект 2D-тела на физическом сервере и возвращает Rid, который его идентифицирует. Настройки по умолчанию для созданной области включают слой столкновения и маску, установленные на 1, и режим тела, установленный на PhysicsServer2D.BodyMode.Rigid. Используйте PhysicsServer2D.BodyAddShape, чтобы добавить к нему формы, используйте PhysicsServer2D.BodySetState, чтобы задать его преобразование, и используйте PhysicsServer2D.BodySetSpace, чтобы добавить тело в пространство.

Возвращает Rid
BodyGetCanvasInstanceIdulong
# BodyGetCanvasInstanceId
C#
public static ulong BodyGetCanvasInstanceId(Rid body);

Возвращает ObjectID холста, прикрепленного к телу. Используйте @GlobalScope.instance_from_id, чтобы получить CanvasLayer из ненулевого ObjectID.

Параметры
ИмяТипПо умолчанию
bodyRid—
Возвращает ulong
BodyGetCollisionLayeruint
# BodyGetCollisionLayer
C#
public static uint BodyGetCollisionLayer(Rid body);

Возвращает физический слой или слои, к которым принадлежит тело, в виде битовой маски.

Параметры
ИмяТипПо умолчанию
bodyRid—
Возвращает uint
BodyGetCollisionMaskuint
# BodyGetCollisionMask
C#
public static uint BodyGetCollisionMask(Rid body);

Возвращает физический слой или слои, с которыми может сталкиваться тело, в виде битовой маски.

Параметры
ИмяТипПо умолчанию
bodyRid—
Возвращает uint
BodyGetCollisionPriorityfloat
# BodyGetCollisionPriority
C#
public static float BodyGetCollisionPriority(Rid body);

Возвращает приоритет столкновения тела. Используется в фазе депенетирования PhysicsServer2D.BodyTestMotion. Чем выше приоритет, тем ниже будет проникновение в тело.

Параметры
ИмяТипПо умолчанию
bodyRid—
Возвращает float
BodyGetConstantForceVector2
# BodyGetConstantForce
C#
public static Vector2 BodyGetConstantForce(Rid body);

Возвращает общую постоянную позиционную силу тела, применяемую во время каждого обновления физики. См. PhysicsServer2D.BodyAddConstantForce и PhysicsServer2D.BodyAddConstantCentralForce.

Параметры
ИмяТипПо умолчанию
bodyRid—
Возвращает Vector2
BodyGetConstantTorquefloat
# BodyGetConstantTorque
C#
public static float BodyGetConstantTorque(Rid body);

Возвращает общую постоянную вращательную силу тела, применяемую во время каждого обновления физики. См. PhysicsServer2D.BodyAddConstantTorque.

Параметры
ИмяТипПо умолчанию
bodyRid—
Возвращает float
BodyGetContinuousCollisionDetectionModePhysicsServer2D.CcdMode
# BodyGetContinuousCollisionDetectionMode
C#
public static PhysicsServer2D.CcdMode BodyGetContinuousCollisionDetectionMode(Rid body);

Возвращает режим непрерывного обнаружения столкновений тела.

Параметры
ИмяТипПо умолчанию
bodyRid—
Возвращает PhysicsServer2D.CcdMode
BodyGetDirectStatePhysicsDirectBodyState2D
# BodyGetDirectState
C#
public static PhysicsDirectBodyState2D BodyGetDirectState(Rid body);

Возвращает PhysicsDirectBodyState2D тела. Возвращает null, если тело уничтожено или не назначено пространству.

Параметры
ИмяТипПо умолчанию
bodyRid—
Возвращает PhysicsDirectBodyState2D
BodyGetMaxContactsReportedint
# BodyGetMaxContactsReported
C#
public static int BodyGetMaxContactsReported(Rid body);

Возвращает максимальное количество контактов, о которых может сообщить тело. См. PhysicsServer2D.BodySetMaxContactsReported.

Параметры
ИмяТипПо умолчанию
bodyRid—
Возвращает int
BodyGetModePhysicsServer2D.BodyMode
# BodyGetMode
C#
public static PhysicsServer2D.BodyMode BodyGetMode(Rid body);

Возвращает режим тела.

Параметры
ИмяТипПо умолчанию
bodyRid—
Возвращает PhysicsServer2D.BodyMode
BodyGetObjectInstanceIdulong
# BodyGetObjectInstanceId
C#
public static ulong BodyGetObjectInstanceId(Rid body);

Возвращает ObjectID, прикрепленный к телу. Используйте @GlobalScope.instance_from_id, чтобы извлечь ReckfellObject из ненулевого ObjectID.

Параметры
ИмяТипПо умолчанию
bodyRid—
Возвращает ulong
BodyGetParamVariant
# BodyGetParam
C#
public static Variant BodyGetParam(Rid body, PhysicsServer2D.BodyParameter param);

Возвращает значение указанного параметра тела.

Параметры
ИмяТипПо умолчанию
bodyRid—
paramPhysicsServer2D.BodyParameter—
Возвращает Variant
BodyGetShapeRid
# BodyGetShape
C#
public static Rid BodyGetShape(Rid body, int shapeIdx);

Возвращает Rid фигуры с указанным индексом в массиве фигур тела.

Параметры
ИмяТипПо умолчанию
bodyRid—
shapeIdxint—
Возвращает Rid
BodyGetShapeCountint
# BodyGetShapeCount
C#
public static int BodyGetShapeCount(Rid body);

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

Параметры
ИмяТипПо умолчанию
bodyRid—
Возвращает int
BodyGetShapeTransformTransform2D
# BodyGetShapeTransform
C#
public static Transform2D BodyGetShapeTransform(Rid body, int shapeIdx);

Возвращает матрицу локального преобразования фигуры с заданным индексом в массиве фигур области.

Параметры
ИмяТипПо умолчанию
bodyRid—
shapeIdxint—
Возвращает Transform2D
BodyGetSpaceRid
# BodyGetSpace
C#
public static Rid BodyGetSpace(Rid body);

Возвращает Rid пространства, назначенного телу. Возвращает пустой Rid, если пространство не назначено.

Параметры
ИмяТипПо умолчанию
bodyRid—
Возвращает Rid
BodyGetStateVariant
# BodyGetState
C#
public static Variant BodyGetState(Rid body, PhysicsServer2D.BodyState state);

Возвращает значение заданного состояния тела.

Параметры
ИмяТипПо умолчанию
bodyRid—
statePhysicsServer2D.BodyState—
Возвращает Variant
BodyIsOmittingForceIntegrationbool
# BodyIsOmittingForceIntegration
C#
public static bool BodyIsOmittingForceIntegration(Rid body);

Возвращает true, если тело пропускает стандартную интеграцию силы. См. PhysicsServer2D.BodySetOmitForceIntegration.

Параметры
ИмяТипПо умолчанию
bodyRid—
Возвращает bool
BodyRemoveCollisionExceptionvoid
# BodyRemoveCollisionException
C#
public static void BodyRemoveCollisionException(Rid body, Rid exceptedBody);

Удалить excepted_body из списка исключений в отношении столкновения тела, так что столкновения с ним больше не игнорируются.

Параметры
ИмяТипПо умолчанию
bodyRid—
exceptedBodyRid—
BodyRemoveShapevoid
# BodyRemoveShape
C#
public static void BodyRemoveShape(Rid body, int shapeIdx);

Удаляет фигуру с указанным индексом из массива фигур тела. Сама фигура не удаляется, поэтому ее можно использовать в другом месте или добавить обратно позже. В результате этой операции у фигур тела, которые имели индексы выше shape_idx, индекс будет уменьшен на единицу.

Параметры
ИмяТипПо умолчанию
bodyRid—
shapeIdxint—
BodyResetMassPropertiesvoid
# BodyResetMassProperties
C#
public static void BodyResetMassProperties(Rid body);

Восстанавливает инерцию и центр масс тела по умолчанию на основе его форм. Это отменяет любые пользовательские значения, ранее заданные с помощью PhysicsServer2D.BodySetParam.

Параметры
ИмяТипПо умолчанию
bodyRid—
BodySetAxisVelocityvoid
# BodySetAxisVelocity
C#
public static void BodySetAxisVelocity(Rid body, Vector2 axisVelocity);

Изменяет линейную скорость тела таким образом, что ее проекция на ось axis_velocity.normalized() равна в точности axis_velocity.length(). Это полезно для прыжкового поведения.

Параметры
ИмяТипПо умолчанию
bodyRid—
axisVelocityVector2—
BodySetCollisionLayervoid
# BodySetCollisionLayer
C#
public static void BodySetCollisionLayer(Rid body, uint layer);

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

Параметры
ИмяТипПо умолчанию
bodyRid—
layeruint—
BodySetCollisionMaskvoid
# BodySetCollisionMask
C#
public static void BodySetCollisionMask(Rid body, uint mask);

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

Параметры
ИмяТипПо умолчанию
bodyRid—
maskuint—
BodySetCollisionPriorityvoid
# BodySetCollisionPriority
C#
public static void BodySetCollisionPriority(Rid body, float priority);

Устанавливает приоритет столкновения тела. Используется в фазе депенетирования PhysicsServer2D.BodyTestMotion. Чем выше приоритет, тем ниже будет проникновение в тело.

Параметры
ИмяТипПо умолчанию
bodyRid—
priorityfloat—
BodySetConstantForcevoid
# BodySetConstantForce
C#
public static void BodySetConstantForce(Rid body, Vector2 force);

Устанавливает общую постоянную позиционную силу тела, применяемую во время каждого обновления физики. См. PhysicsServer2D.BodyAddConstantForce и PhysicsServer2D.BodyAddConstantCentralForce.

Параметры
ИмяТипПо умолчанию
bodyRid—
forceVector2—
BodySetConstantTorquevoid
# BodySetConstantTorque
C#
public static void BodySetConstantTorque(Rid body, float torque);

Устанавливает общую постоянную вращательную силу тела, применяемую во время каждого обновления физики. См. PhysicsServer2D.BodyAddConstantTorque.

Параметры
ИмяТипПо умолчанию
bodyRid—
torquefloat—
BodySetContinuousCollisionDetectionModevoid
# BodySetContinuousCollisionDetectionMode
C#
public static void BodySetContinuousCollisionDetectionMode(Rid body, PhysicsServer2D.CcdMode mode);

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

Параметры
ИмяТипПо умолчанию
bodyRid—
modePhysicsServer2D.CcdMode—
BodySetForceIntegrationCallbackvoid
# BodySetForceIntegrationCallback
C#
public static void BodySetForceIntegrationCallback(Rid body, Callable callable, Variant userdata = default);

Устанавливает функцию вызова интегрирования усилия в организм для callable. Использовать пустоту Callable ([Код пропусков]Callable() ", чтобы очистить заказный ответ. Функция callable будет называться каждый физика клещ до стандартной интеграции сил (см. PhysicsServer2D.BodySetOmitForceIntegrationОн может использоваться, например, для обновления линейной и угловой скорости тела на основе контакта с другими телами. Если userdata нет null, функция callable должны измеряться следующие два параметра:

  1. state: a PhysicsDirectBodyState2D используя для извлечения и изменения состояния тела,
  2. Variant; its value will be the В этот метод ввели данные пользователя. Если userdataэтоnullТогда callableдолжен взять толькоstate` параметр.
Параметры
ИмяТипПо умолчанию
bodyRid—
callableCallable—
userdataVariantdefault
BodySetMaxContactsReportedvoid
# BodySetMaxContactsReported
C#
public static void BodySetMaxContactsReported(Rid body, int amount);

Устанавливает максимальное количество контактов, о которых может сообщить тело. Если amount больше нуля, то тело будет отслеживать не более этого количества контактов с другими телами.

Параметры
ИмяТипПо умолчанию
bodyRid—
amountint—
BodySetModevoid
# BodySetMode
C#
public static void BodySetMode(Rid body, PhysicsServer2D.BodyMode mode);

Устанавливает режим тела.

Параметры
ИмяТипПо умолчанию
bodyRid—
modePhysicsServer2D.BodyMode—
BodySetOmitForceIntegrationvoid
# BodySetOmitForceIntegration
C#
public static void BodySetOmitForceIntegration(Rid body, bool enable);

Устанавливает, будет ли тело пропускать стандартную интеграцию силы. Если enable равно true, тело не будет автоматически использовать приложенные силы, крутящие моменты и демпфирование для обновления линейной и угловой скорости тела. В этом случае PhysicsServer2D.BodySetForceIntegrationCallback можно использовать для ручного обновления линейной и угловой скорости. Этот метод вызывается, когда задано свойство RigidBody2D.CustomIntegrator.

Параметры
ИмяТипПо умолчанию
bodyRid—
enablebool—
BodySetParamvoid
# BodySetParam
C#
public static void BodySetParam(Rid body, PhysicsServer2D.BodyParameter param, Variant value);

Устанавливает значение указанного параметра тела.

Параметры
ИмяТипПо умолчанию
bodyRid—
paramPhysicsServer2D.BodyParameter—
valueVariant—
BodySetShapevoid
# BodySetShape
C#
public static void BodySetShape(Rid body, int shapeIdx, Rid shape);

Заменяет форму тела по указанному индексу на другую форму, не влияя на свойства transform, disabled и одностороннего столкновения по тому же индексу.

Параметры
ИмяТипПо умолчанию
bodyRid—
shapeIdxint—
shapeRid—
BodySetShapeAsOneWayCollision2 перегрузки
# BodySetShapeAsOneWayCollision · 1/2
C#
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() в локальном пространстве тела), будет использоваться для игнорирования столкновений с формой в противоположном направлении и для обеспечения депенетрации кинематических тел в этом направлении.

Параметры
ИмяТипПо умолчанию
bodyRid—
shapeIdxint—
enablebool—
marginfloat—
# BodySetShapeAsOneWayCollision · 2/2
C#
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() в локальном пространстве тела), будет использоваться для игнорирования столкновений с формой в противоположном направлении и для обеспечения депенетрации кинематических тел в этом направлении.

Параметры
ИмяТипПо умолчанию
bodyRid—
shapeIdxint—
enablebool—
marginfloat—
directionVector2?default
direction

Если параметр не имеет значения, то значение по умолчанию: new Vector2(0.0f, 1.0f).

BodySetShapeDisabledvoid
# BodySetShapeDisabled
C#
public static void BodySetShapeDisabled(Rid body, int shapeIdx, bool disabled);

Устанавливает отключенное свойство формы тела с заданным индексом. Если disabled равен true, то форма будет игнорироваться при всех обнаружениях столкновений.

Параметры
ИмяТипПо умолчанию
bodyRid—
shapeIdxint—
disabledbool—
BodySetShapeTransformvoid
# BodySetShapeTransform
C#
public static void BodySetShapeTransform(Rid body, int shapeIdx, Transform2D transform);

Задает локальную матрицу преобразования формы тела с заданным индексом.

Параметры
ИмяТипПо умолчанию
bodyRid—
shapeIdxint—
transformTransform2D—
BodySetSpacevoid
# BodySetSpace
C#
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()).
Параметры
ИмяТипПо умолчанию
bodyRid—
spaceRid—
BodySetStatevoid
# BodySetState
C#
public static void BodySetState(Rid body, PhysicsServer2D.BodyState state, Variant value);

Устанавливает значение состояния тела. Примечание: Изменение состояния не вступает в силу немедленно. Состояние изменится в следующем физическом кадре.

Параметры
ИмяТипПо умолчанию
bodyRid—
statePhysicsServer2D.BodyState—
valueVariant—
BodySetStateSyncCallbackvoid
# BodySetStateSyncCallback
C#
public static void BodySetStateSyncCallback(Rid body, Callable callable);

Устанавливает функцию синхронизации вызова тела callable. Использовать пустоту Callable ([Код пропусков]Callable() чтобы освободить ответный звонок. Функция callable будет называться каждой физической рамой, если предположить, что тело было активным во время предыдущей физики, и может быть использовано для получения последнего состояния с сервера физики. Функция callable должны иметь следующие параметры:

  1. state: a PhysicsDirectBodyState2D, использовал для восстановления состояния тела.
Параметры
ИмяТипПо умолчанию
bodyRid—
callableCallable—
BodyTestMotionbool
# BodyTestMotion
C#
public static bool BodyTestMotion(Rid body, PhysicsTestMotionParameters2D parameters, PhysicsTestMotionResult2D result = null);

Возвращает true, если столкновение возникнет в результате перемещения тела по вектору движения из заданной точки в пространстве. См. PhysicsTestMotionParameters2D для доступных параметров движения. При желании можно передать объект PhysicsTestMotionResult2D, который будет использоваться для хранения информации о полученном столкновении.

Параметры
ИмяТипПо умолчанию
bodyRid—
parametersPhysicsTestMotionParameters2D—
resultPhysicsTestMotionResult2Dnull
Возвращает bool
CapsuleShapeCreateRid
# CapsuleShapeCreate
C#
public static Rid CapsuleShapeCreate();

Создает форму капсулы 2D на физическом сервере и возвращает Rid, который ее идентифицирует. Используйте PhysicsServer2D.ShapeSetData, чтобы задать высоту и радиус капсулы.

Возвращает Rid
CircleShapeCreateRid
# CircleShapeCreate
C#
public static Rid CircleShapeCreate();

Создает 2D-круг на физическом сервере и возвращает Rid, который его идентифицирует. Используйте PhysicsServer2D.ShapeSetData, чтобы задать радиус круга.

Возвращает Rid
ConcavePolygonShapeCreateRid
# ConcavePolygonShapeCreate
C#
public static Rid ConcavePolygonShapeCreate();

Создает 2D вогнутую многоугольную форму на физическом сервере и возвращает Rid, который ее идентифицирует. Используйте PhysicsServer2D.ShapeSetData, чтобы задать сегменты вогнутого многоугольника.

##выпущенный_полигон_шап_создание

Возвращает Rid
ConvexPolygonShapeCreateRid
# ConvexPolygonShapeCreate
C#
public static Rid ConvexPolygonShapeCreate();

Создает 2D выпуклую многоугольную форму на физическом сервере и возвращает Rid, который ее идентифицирует. Используйте PhysicsServer2D.ShapeSetData для установки точек выпуклого многоугольника.

Возвращает Rid
DampedSpringJointGetParamfloat
# DampedSpringJointGetParam
C#
public static float DampedSpringJointGetParam(Rid joint, PhysicsServer2D.DampedSpringParam param);

Возвращает значение заданного параметра демпфированного пружинного соединения (весенний сустав).

Параметры
ИмяТипПо умолчанию
jointRid—
paramPhysicsServer2D.DampedSpringParam—
Возвращает float
DampedSpringJointSetParamvoid
# DampedSpringJointSetParam
C#
public static void DampedSpringJointSetParam(Rid joint, PhysicsServer2D.DampedSpringParam param, float value);

Устанавливает значение заданного параметра демпфированного пружинного соединения (весенний сустав).

Параметры
ИмяТипПо умолчанию
jointRid—
paramPhysicsServer2D.DampedSpringParam—
valuefloat—
FreeRidvoid
# FreeRid
C#
public static void FreeRid(Rid rid);

Уничтожает любой из объектов, созданных PhysicsServer2D. Если переданный Rid не является одним из объектов, которые могут быть созданы PhysicsServer2D, на консоль будет выведена ошибка.

Параметры
ИмяТипПо умолчанию
ridRid—
GetProcessInfoint
# GetProcessInfo
C#
public static int GetProcessInfo(PhysicsServer2D.ProcessInfo processInfo);

Возвращает значение состояния физического движка, заданное process_info.

Параметры
ИмяТипПо умолчанию
processInfoPhysicsServer2D.ProcessInfo—
Возвращает int
JointClearvoid
# JointClear
C#
public static void JointClear(Rid joint);

Уничтожает соединение с указанным Rid, создает новое неинициализированное соединение и заставляет Rid ссылаться на это новое соединение.

Параметры
ИмяТипПо умолчанию
jointRid—
JointCreateRid
# JointCreate
C#
public static Rid JointCreate();

Создает 2D-соединение на физическом сервере и возвращает Rid, который его идентифицирует. Чтобы задать тип соединения, используйте PhysicsServer2D.JointMakeDampedSpring, PhysicsServer2D.JointMakeGroove или PhysicsServer2D.JointMakePin. Используйте PhysicsServer2D.JointSetParam для задания общих параметров соединения.

Возвращает Rid
JointDisableCollisionsBetweenBodiesvoid
# JointDisableCollisionsBetweenBodies
C#
public static void JointDisableCollisionsBetweenBodies(Rid joint, bool disable);

Устанавливает, будут ли тела, прикрепленные к Joint2D, сталкиваться друг с другом.

Параметры
ИмяТипПо умолчанию
jointRid—
disablebool—
JointGetParamfloat
# JointGetParam
C#
public static float JointGetParam(Rid joint, PhysicsServer2D.JointParam param);

Возвращает значение указанного параметра соединения.

Параметры
ИмяТипПо умолчанию
jointRid—
paramPhysicsServer2D.JointParam—
Возвращает float
JointGetTypePhysicsServer2D.JointType
# JointGetType
C#
public static PhysicsServer2D.JointType JointGetType(Rid joint);

Возвращает тип соединения.

Параметры
ИмяТипПо умолчанию
jointRid—
Возвращает PhysicsServer2D.JointType
JointIsDisabledCollisionsBetweenBodiesbool
# JointIsDisabledCollisionsBetweenBodies
C#
public static bool JointIsDisabledCollisionsBetweenBodies(Rid joint);

Возвращает, будут ли тела, прикрепленные к Joint2D, сталкиваться друг с другом.

Параметры
ИмяТипПо умолчанию
jointRid—
Возвращает bool
JointMakeDampedSpringvoid
# JointMakeDampedSpring
C#
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.

Параметры
ИмяТипПо умолчанию
jointRid—
anchorAVector2—
anchorBVector2—
bodyARid—
bodyBRiddefault
JointMakeGroovevoid
# JointMakeGroove
C#
public static void JointMakeGroove(Rid joint, Vector2 groove1A, Vector2 groove2A, Vector2 anchorB, Rid bodyA = default, Rid bodyB = default);

Делает соединение пазовым.

Параметры
ИмяТипПо умолчанию
jointRid—
groove1AVector2—
groove2AVector2—
anchorBVector2—
bodyARiddefault
bodyBRiddefault
JointMakePinvoid
# JointMakePin
C#
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.

Параметры
ИмяТипПо умолчанию
jointRid—
anchorVector2—
bodyARid—
bodyBRiddefault
JointSetParamvoid
# JointSetParam
C#
public static void JointSetParam(Rid joint, PhysicsServer2D.JointParam param, float value);

Устанавливает значение указанного параметра соединения.

Параметры
ИмяТипПо умолчанию
jointRid—
paramPhysicsServer2D.JointParam—
valuefloat—
PinJointGetFlagbool
# PinJointGetFlag
C#
public static bool PinJointGetFlag(Rid joint, PhysicsServer2D.PinJointFlag flag);

Получает флаг штифтового соединения (сустав).

Параметры
ИмяТипПо умолчанию
jointRid—
flagPhysicsServer2D.PinJointFlag—
Возвращает bool
PinJointGetParamfloat
# PinJointGetParam
C#
public static float PinJointGetParam(Rid joint, PhysicsServer2D.PinJointParam param);

Возвращает значение параметра штифтового соединения (сустав).

Параметры
ИмяТипПо умолчанию
jointRid—
paramPhysicsServer2D.PinJointParam—
Возвращает float
PinJointSetFlagvoid
# PinJointSetFlag
C#
public static void PinJointSetFlag(Rid joint, PhysicsServer2D.PinJointFlag flag, bool enabled);

Устанавливает флаг штифтового соединения (сустав).

Параметры
ИмяТипПо умолчанию
jointRid—
flagPhysicsServer2D.PinJointFlag—
enabledbool—
PinJointSetParamvoid
# PinJointSetParam
C#
public static void PinJointSetParam(Rid joint, PhysicsServer2D.PinJointParam param, float value);

Устанавливает параметр штифтового соединения.

Параметры
ИмяТипПо умолчанию
jointRid—
paramPhysicsServer2D.PinJointParam—
valuefloat—
RectangleShapeCreateRid
# RectangleShapeCreate
C#
public static Rid RectangleShapeCreate();

Создает 2D-прямоугольную форму на физическом сервере и возвращает Rid, который ее идентифицирует. Используйте PhysicsServer2D.ShapeSetData, чтобы задать половинные размеры прямоугольника.

Возвращает Rid
SegmentShapeCreateRid
# SegmentShapeCreate
C#
public static Rid SegmentShapeCreate();

Создает форму 2D-сегмента на физическом сервере и возвращает Rid, который его идентифицирует. Используйте PhysicsServer2D.ShapeSetData, чтобы задать начальную и конечную точки сегмента.

Возвращает Rid
SeparationRayShapeCreateRid
# SeparationRayShapeCreate
C#
public static Rid SeparationRayShapeCreate();

Создает форму луча разделения 2D на физическом сервере и возвращает Rid, который ее идентифицирует. Используйте PhysicsServer2D.ShapeSetData, чтобы задать свойства формы length и slide_on_slope.

Возвращает Rid
SetActivevoid
# SetActive
C#
public static void SetActive(bool active);

Активирует или деактивирует сервер 2D-физики. Если active равен false, то сервер физики не будет ничего делать на своем шаге физики.

Параметры
ИмяТипПо умолчанию
activebool—
ShapeGetDataVariant
# ShapeGetData
C#
public static Variant ShapeGetData(Rid shape);

Возвращает данные формы, которые определяют конфигурацию формы, например, полупространства прямоугольника или сегменты вогнутой формы. См. PhysicsServer2D.ShapeSetData для точного формата этих данных в каждом случае.

Параметры
ИмяТипПо умолчанию
shapeRid—
Возвращает Variant
ShapeGetTypePhysicsServer2D.ShapeType
# ShapeGetType
C#
public static PhysicsServer2D.ShapeType ShapeGetType(Rid shape);

Возвращает тип фигуры.

Параметры
ИмяТипПо умолчанию
shapeRid—
Возвращает PhysicsServer2D.ShapeType
ShapeSetDatavoid
# ShapeSetData
C#
public static void ShapeSetData(Rid shape, Variant data);

Устанавливает данные о форме, определяющие конфигурацию формы. data который будет передан, зависит от типа формы (см. PhysicsServer2D.ShapeGetType):

  • PhysicsServer2D.ShapeType.WorldBoundary:: два ряда длины, содержащие a Vector2 normal направление и a [float] расстояние d,
  • PhysicsServer2D.ShapeType.SeparationRay: словарь, содержащий ключ length с а [float] стоимость и ключ slide_on_slope с а [bool] значение,
  • PhysicsServer2D.ShapeType.Segment: a Rect2 rect в котором содержится первый пункт сегмента rect.position и второй момент сегмента rect.size,
  • PhysicsServer2D.ShapeType.Circle: a [float] radius,
  • PhysicsServer2D.ShapeType.Rectangle: a Vector2 half_extents,
  • PhysicsServer2D.ShapeType.Capsule: диапазон длины два (или a Vector2) с указанием [float] height и a [float] radius,
  • PhysicsServer2D.ShapeType.ConvexPolygon:: либо a Vector2[] из точек, определяющих выпуклый многоугольник в порядке против часовой стрелки (по часовой стрелке каждый сегмент, образованный последовательными точками, рассчитывается внутри) или a float[] Длина, делимая на четыре таким образом, чтобы каждые 4-тюблю [float] содержит координаты точки, за которой следуют координаты обычного вектора по часовой стрелке между текущей и следующей точками,
  • PhysicsServer2D.ShapeType.ConcavePolygon: a Vector2[] Длина, делимая на две (каждая пара точек образует один сегмент). Предупреждение: В случае PhysicsServer2D.ShapeType.ConvexPolygon, этот метод не проверяет, действительно ли поставленные точки образуют выпуклый многоугольник (не как CollisionPolygon2D.Polygon - имущество).
Параметры
ИмяТипПо умолчанию
shapeRid—
dataVariant—
SpaceCreateRid
# SpaceCreate
C#
public static Rid SpaceCreate();

Создает 2D-пространство на физическом сервере и возвращает Rid, который его идентифицирует. Пространство содержит тела и области и управляет пошаговым выполнением физической симуляции объектов в нем.

Возвращает Rid
SpaceGetDirectStatePhysicsDirectSpaceState2D
# SpaceGetDirectState
C#
public static PhysicsDirectSpaceState2D SpaceGetDirectState(Rid space);

Возвращает состояние пространства, PhysicsDirectSpaceState2D. Этот объект может использоваться для запросов на столкновение/пересечение.

Параметры
ИмяТипПо умолчанию
spaceRid—
Возвращает PhysicsDirectSpaceState2D
SpaceGetParamfloat
# SpaceGetParam
C#
public static float SpaceGetParam(Rid space, PhysicsServer2D.SpaceParameter param);

Возвращает значение указанного параметра пространства.

Параметры
ИмяТипПо умолчанию
spaceRid—
paramPhysicsServer2D.SpaceParameter—
Возвращает float
SpaceIsActivebool
# SpaceIsActive
C#
public static bool SpaceIsActive(Rid space);

Возвращает true, если пространство активно.

Параметры
ИмяТипПо умолчанию
spaceRid—
Возвращает bool
SpaceSetActivevoid
# SpaceSetActive
C#
public static void SpaceSetActive(Rid space, bool active);

Активирует или деактивирует пространство. Если active равен false, то физический сервер не будет ничего делать с этим пространством на своем физическом шаге.

Параметры
ИмяТипПо умолчанию
spaceRid—
activebool—
SpaceSetParamvoid
# SpaceSetParam
C#
public static void SpaceSetParam(Rid space, PhysicsServer2D.SpaceParameter param, float value);

Устанавливает значение указанного параметра пространства.

Параметры
ИмяТипПо умолчанию
spaceRid—
paramPhysicsServer2D.SpaceParameter—
valuefloat—
WorldBoundaryShapeCreateRid
# WorldBoundaryShapeCreate
C#
public static Rid WorldBoundaryShapeCreate();

Создает форму границы 2D-мира на физическом сервере и возвращает Rid, который ее идентифицирует. Используйте PhysicsServer2D.ShapeSetData, чтобы задать нормальное направление формы и свойства расстояния.

Возвращает Rid

PhysicsServer2D.AreaBodyStatus

ЗначениеОписание
Added = 0

Значение первого параметра и функция обратного вызова области получает, когда объект входит в одну из ее фигур.

Removed = 1

Значение первого параметра и функция обратного вызова области получает, когда объект выходит из одной из своих фигур.

PhysicsServer2D.AreaParameter

ЗначениеОписание
AngularDamp = 8

Константа для установки/получения углового коэффициента затухания области. Значение этого параметра по умолчанию 1.0.

AngularDampOverrideMode = 7

Константа для установки/получения режима переопределения углового демпфирования в области. См. PhysicsServer2D.AreaSpaceOverrideMode для возможных значений. Значение этого параметра по умолчанию — PhysicsServer2D.AreaSpaceOverrideMode.Disabled.

Gravity = 1

Константа для установки/получения силы гравитации в области. Значение этого параметра по умолчанию 9.80665.

GravityIsPoint = 3

Константа для установки/получения того, является ли вектор гравитации области направлением или центральной точкой. Значение этого параметра по умолчанию — false.

GravityOverrideMode = 0

Константа для установки/получения режима переопределения гравитации в области. См. PhysicsServer2D.AreaSpaceOverrideMode для возможных значений. Значение этого параметра по умолчанию — PhysicsServer2D.AreaSpaceOverrideMode.Disabled.

GravityPointUnitDistance = 4

Постоянно устанавливать/получать расстояние, на котором сила тяжести равна гравитации, контролируемой PhysicsServer2D.AreaParameter.GravityНапример, на планете 100 пикселей в радиусе с поверхностной гравитацией 4,0 px/s2, установить гравитацию до 4,0, а единичное расстояние - до 100,0. Притяжение будет выпадать в соответствии с нормой обратного квадрата, так что в примере при 200 пикселях от центра гравитация будет составлять 1,0 px/s2 (дважды расстояние, 1/4 гравитация), при 50 пикселях - 16,0 px/s2 (полная дистанция, 4× гравитация) и т.д. Вышеизложенное справедливо только в том случае, если единичное расстояние является положительным числом. Когда единичное расстояние устанавливается на 0,0, гравитация будет постоянной независимо от расстояния. По умолчанию значение этого параметра равно: 0.0.

GravityVector = 2

Константа для установки/получения вектора/центра гравитации в области. Значение этого параметра по умолчанию: Vector2(0, -1).

LinearDamp = 6

Константа для установки/получения линейного коэффициента затухания области. Значение этого параметра по умолчанию 0.1.

LinearDampOverrideMode = 5

Константа для установки/получения режима переопределения линейного затухания в области. См. PhysicsServer2D.AreaSpaceOverrideMode для возможных значений. Значение этого параметра по умолчанию — PhysicsServer2D.AreaSpaceOverrideMode.Disabled.

Priority = 9

Константа для установки/получения приоритета (порядка обработки) области. Значение этого параметра по умолчанию 0.

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

Константа для установки/получения углового коэффициента демпфирования тела. Значение этого параметра по умолчанию 0.0.

AngularDampMode = 7

Константа для установки/получения режима углового демпфирования тела. См. PhysicsServer2D.BodyDampMode для возможных значений. Значение этого параметра по умолчанию — PhysicsServer2D.BodyDampMode.Combine.

Bounce = 0

Константа для установки/получения коэффициента отскока тела. Значение этого параметра по умолчанию 0.0.

CenterOfMass = 4

Константа для установки/получения положения центра масс тела в его локальной системе координат. Значение этого параметра по умолчанию — Vector2(0, 0). Если этот параметр не задан явно, он пересчитывается на основе формы тела при установке параметра PhysicsServer2D.BodyParameter.Mass или при вызове PhysicsServer2D.BodySetSpace.

Friction = 1

Константа для установки/получения трения тела. Значение этого параметра по умолчанию 1.0.

GravityScale = 5

Константа для установки/получения множителя гравитации тела. Значение этого параметра по умолчанию 1.0.

Inertia = 3

Константа для установки/получения инерции тела. Значение этого параметра по умолчанию 0.0. Если инерция тела установлена на значение <= 0.0, то инерция будет пересчитана на основе формы тела, массы и центра масс.

LinearDamp = 8

Константа для установки/получения линейного коэффициента затухания тела. Значение этого параметра по умолчанию 0.0.

LinearDampMode = 6

Константа для установки/получения линейного режима демпфирования тела. См. PhysicsServer2D.BodyDampMode для возможных значений. Значение этого параметра по умолчанию — PhysicsServer2D.BodyDampMode.Combine.

Mass = 2

Константа для установки/получения массы тела. Значение этого параметра по умолчанию — 1.0. Если режим тела установлен на PhysicsServer2D.BodyMode.Rigid, то установка этого параметра будет иметь следующие дополнительные эффекты:

  • Если параметр PhysicsServer2D.BodyParameter.CenterOfMass никогда не был задан явно, то значение этого параметра будет пересчитано на основе форм тела.
  • Если параметр PhysicsServer2D.BodyParameter.Inertia установлен на значение <= 0.0, то значение этого параметра будет пересчитано на основе форм тела, массы и центра масс.
Max = 10

Представляет размер перечисления PhysicsServer2D.BodyParameter.

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 заставляет систему достигать равновесия как можно быстрее (критическое демпфирование). Значение этого параметра по умолчанию — 1.5.

RestLength = 0

Устанавливает длину покоя пружинного соединения. Соединение всегда будет пытаться вернуться на эту длину при раздвижении. Значение этого параметра по умолчанию — расстояние между точками крепления соединения.

Stiffness = 1

Устанавливает жесткость пружинного соединения. Соединение прикладывает силу, равную жесткости, умноженной на расстояние от его длины покоя. Значение этого параметра по умолчанию — 20.0.

PhysicsServer2D.JointParam

ЗначениеОписание
Bias = 0

Константа для установки/получения того, насколько быстро сочленение тянет тела назад, чтобы удовлетворить ограничение сочленения. Чем ниже значение, тем больше два тела могут тянуть сочленение. Значение этого параметра по умолчанию — 0.0. Примечание: В физике Reckfell этот параметр используется только для штифтовых и пазовых соединений.

MaxBias = 1

Константа для установки/получения максимальной скорости, с которой сочленение может применять исправления. Значение этого параметра по умолчанию — 3.40282e+38. Примечание: В физике Reckfell этот параметр используется только для сочленений с канавками.

MaxForce = 2

Константа для установки/получения максимальной силы, которую может использовать соединение для воздействия на два тела. Значение этого параметра по умолчанию — 3.40282e+38. Примечание: В физике Годо этот параметр используется только для пазов.

PhysicsServer2D.JointType

ЗначениеОписание
DampedSpring = 2

Константа для создания демпфирующих пружинных соединений.

Groove = 1

Константа для создания пазов.

Max = 3

Представляет размер перечисления PhysicsServer2D.JointType.

Pin = 0

Константа для создания штифтовых соединений.

PhysicsServer2D.PinJointFlag

ЗначениеОписание
AngularLimitEnabled = 0

Если true, штифт имеет максимальное и минимальное вращение.

MotorEnabled = 1

Если true, двигатель поворачивает штифт.

PhysicsServer2D.PinJointParam

ЗначениеОписание
LimitLower = 2

Минимальное вращение вокруг штифта.

LimitUpper = 1

Максимальное вращение вокруг штифта.

MotorTargetVelocity = 3

Целевая скорость двигателя. В радианах в секунду.

Softness = 0

Константа для установки/получения того, насколько может изгибаться соединение штифтового соединения. Значение этого параметра по умолчанию — 0.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

Константа для установки/получения пороговой угловой скорости активности. Тело, отмеченное как потенциально неактивное как для линейной, так и для угловой скорости, будет переведено в спящий режим по истечении указанного времени. Значение этого параметра по умолчанию — ProjectSettings.physics/2d/sleep_threshold_angular.

BodyLinearVelocitySleepThreshold = 4

Константа для установки/получения пороговой линейной скорости активности. Тело, отмеченное как потенциально неактивное как для линейной, так и для угловой скорости, будет переведено в спящий режим по истечении указанного времени. Значение этого параметра по умолчанию — ProjectSettings.physics/2d/sleep_threshold_linear.

BodyTimeToSleep = 6

Константа для установки/получения максимального времени активности. Тело, отмеченное как потенциально неактивное как для линейной, так и для угловой скорости, будет переведено в спящий режим по истечении этого времени. Значение этого параметра по умолчанию — ProjectSettings.physics/2d/time_before_sleep.

ConstraintDefaultBias = 7

Константа для установки/получения смещения решателя по умолчанию для всех физических ограничений. Смещение решателя — это фактор, контролирующий, насколько два объекта «отскакивают» после нарушения ограничения, чтобы не оставлять их в этом состоянии из-за числовой неточности. Значение этого параметра по умолчанию — ProjectSettings.physics/2d/solver/default_constraint_bias.

ContactDefaultBias = 3

Константа для установки/получения смещения решателя по умолчанию для всех физических контактов. Смещение решателя — это фактор, контролирующий, насколько два объекта «отскакивают» после наложения, чтобы избежать их оставления в этом состоянии из-за числовой неточности. Значение этого параметра по умолчанию — ProjectSettings.physics/2d/solver/default_contact_bias.

ContactMaxAllowedPenetration = 2

Константа для установки/получения максимального расстояния, на которое фигура может проникнуть в другую фигуру, прежде чем это будет считаться столкновением. Значение этого параметра по умолчанию — ProjectSettings.physics/2d/solver/contact_max_allowed_penetration.

ContactMaxSeparation = 1

Константа для установки/получения максимального расстояния между фигурами, на котором они могут находиться, прежде чем они будут считаться разделенными, а контакт будет отброшен. Значение этого параметра по умолчанию — ProjectSettings.physics/2d/solver/contact_max_separation.

ContactRecycleRadius = 0

Константа для установки/получения максимального расстояния, на которое должна переместиться пара тел, прежде чем их статус столкновения придется пересчитать. Значение этого параметра по умолчанию — ProjectSettings.physics/2d/solver/contact_recycle_radius.

SolverIterations = 8

Константа для установки/получения количества итераций решателя для всех контактов и ограничений. Чем больше количество итераций, тем точнее будут столкновения. Однако большее количество итераций требует большей мощности ЦП, что может снизить производительность. Значение этого параметра по умолчанию — ProjectSettings.physics/2d/solver/solver_iterations.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

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

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

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