reckfellENGINE

CollisionObject2D

Базовый объект физического обнаружения 2D.

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

Тела и зоны наследуют CollisionObject2D. Геометрию задают дочерние CollisionShape и ресурсы Shape; видимый спрайт/меш не создаёт её автоматически. Layer задаёт принадлежность объекта, Mask — фильтр обнаружения/взаимодействия.

Номер слоя 3 соответствует биту 4. Методы SetCollisionLayerValue/SetCollisionMaskValue принимают номер 1–32, а не готовую битовую маску. Для лучевого исключения используйте GetRid, а не GetInstanceId. Индекс shape в запросе относится к физическим формам; он не равен произвольному индексу ребёнка в иерархии.

Руководство и пример.

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

Свойства5

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

Битовая маска принадлежности объекта слоям физики 2D. Слой 3 имеет значение 4, а маска 3 включает слои 1 и 2. Не путайте с фильтром CollisionMask.

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

Битовая маска фильтра взаимодействия или обнаружения. Для Area2D выбирает слои обнаруживаемого тела; контакт тел не требует одинаковых взаимных масок. У лучей и навигации отдельные фильтры.

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

Приоритет, используемый для решения столкновений при возникновении проникновения. Чем выше приоритет, тем ниже будет проникновение в объект. Это может быть использовано, например, для предотвращения прорыва игрока через границы уровня.

DisableModeСвойство
# DisableMode
C#
public CollisionObject2D.DisableModeEnum DisableMode { get; set; }

Определяет поведение в физике, когда Entity.ProcessMode установлен в Entity.ProcessModeEnum.Disabled.

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

Если true, этот объект можно выбрать. Можно выбрать, обнаружив вход/выход указателя мыши, и если мышь находится внутри него, сообщать о событиях ввода. Требуется установить хотя бы один бит CollisionObject2D.CollisionLayer.

Методы41

CreateShapeOwneruint
# CreateShapeOwner
C#
public uint CreateShapeOwner(ReckfellObject owner);

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

Параметры
ИмяТипПо умолчанию
ownerReckfellObject—
Возвращает uint
GetCollisionLayeruint
# GetCollisionLayer
C#
public uint GetCollisionLayer();
Возвращает uint
GetCollisionLayerValuebool
# GetCollisionLayerValue
C#
public bool GetCollisionLayerValue(int layerNumber);

Проверяет один бит принадлежности по номеру слоя 1–32. Не принимает готовую битовую маску.

Параметры
ИмяТипПо умолчанию
layerNumberint—
layerNumber

Номер слоя от 1 до 32 включительно. Номер 3 соответствует биту со значением 4.

Возвращает bool

true, если выбранный бит установлен; false, если сброшен. Недопустимый номер вызывает сообщение об ошибке и возвращает false.

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

Проверяет один бит фильтра по номеру слоя 1–32. Не принимает готовую битовую маску.

Параметры
ИмяТипПо умолчанию
layerNumberint—
layerNumber

Номер слоя от 1 до 32 включительно. Номер 3 соответствует биту со значением 4.

Возвращает bool

true, если выбранный бит установлен; false, если сброшен. Недопустимый номер вызывает сообщение об ошибке и возвращает false.

GetCollisionPriorityfloat
# GetCollisionPriority
C#
public float GetCollisionPriority();
Возвращает float
GetDisableModeCollisionObject2D.DisableModeEnum
# GetDisableMode
C#
public CollisionObject2D.DisableModeEnum GetDisableMode();
Возвращает CollisionObject2D.DisableModeEnum
GetRidRid
# GetRid
C#
public Rid GetRid();

Возвращает Rid объекта.

Возвращает Rid
GetShapeOwnerOneWayCollisionDirectionVector2
# GetShapeOwnerOneWayCollisionDirection
C#
public Vector2 GetShapeOwnerOneWayCollisionDirection(uint ownerId);

Возвращает one_way_collision_direction владельца фигуры, идентифицированного заданным owner_id.

Параметры
ИмяТипПо умолчанию
ownerIduint—
Возвращает Vector2
GetShapeOwnerOneWayCollisionMarginfloat
# GetShapeOwnerOneWayCollisionMargin
C#
public float GetShapeOwnerOneWayCollisionMargin(uint ownerId);

Возвращает one_way_collision_margin владельца фигуры, идентифицированного заданным owner_id.

Параметры
ИмяТипПо умолчанию
ownerIduint—
Возвращает float
GetShapeOwnersint[]
# GetShapeOwners
C#
public int[] GetShapeOwners();

Возвращает Reckfell.Collections.Array идентификаторов owner_id. Вы можете использовать эти идентификаторы в других методах, которые принимают owner_id в качестве аргумента.

Возвращает int[]
IsPickablebool
# IsPickable
C#
public bool IsPickable();
Возвращает bool
IsShapeOwnerDisabledbool
# IsShapeOwnerDisabled
C#
public bool IsShapeOwnerDisabled(uint ownerId);

Если true, владелец фигуры и его фигуры отключены.

Параметры
ИмяТипПо умолчанию
ownerIduint—
Возвращает bool
IsShapeOwnerOneWayCollisionEnabledbool
# IsShapeOwnerOneWayCollisionEnabled
C#
public bool IsShapeOwnerOneWayCollisionEnabled(uint ownerId);

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

Параметры
ИмяТипПо умолчанию
ownerIduint—
Возвращает bool
RemoveShapeOwnervoid
# RemoveShapeOwner
C#
public void RemoveShapeOwner(uint ownerId);

Удаляет указанного владельца фигуры.

Параметры
ИмяТипПо умолчанию
ownerIduint—
SetCollisionLayervoid
# SetCollisionLayer
C#
public void SetCollisionLayer(uint layer);
Параметры
ИмяТипПо умолчанию
layeruint—
SetCollisionLayerValuevoid
# SetCollisionLayerValue
C#
public void SetCollisionLayerValue(int layerNumber, bool value);

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

Параметры
ИмяТипПо умолчанию
layerNumberint—
valuebool—
layerNumber

Номер слоя 1–32, не значение маски. Вне диапазона изменение отклоняется с сообщением об ошибке.

value

true устанавливает выбранный бит; false сбрасывает его.

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

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

Параметры
ИмяТипПо умолчанию
layerNumberint—
valuebool—
layerNumber

Номер слоя 1–32, не значение маски. Вне диапазона изменение отклоняется с сообщением об ошибке.

value

true устанавливает выбранный бит; false сбрасывает его.

SetCollisionPriorityvoid
# SetCollisionPriority
C#
public void SetCollisionPriority(float priority);
Параметры
ИмяТипПо умолчанию
priorityfloat—
SetDisableModevoid
# SetDisableMode
C#
public void SetDisableMode(CollisionObject2D.DisableModeEnum mode);
Параметры
ИмяТипПо умолчанию
modeCollisionObject2D.DisableModeEnum—
SetPickablevoid
# SetPickable
C#
public void SetPickable(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
ShapeFindOwneruint
# ShapeFindOwner
C#
public uint ShapeFindOwner(int shapeIndex);

Возвращает owner_id заданной фигуры.

Параметры
ИмяТипПо умолчанию
shapeIndexint—
Возвращает uint
ShapeOwnerAddShapevoid
# ShapeOwnerAddShape
C#
public void ShapeOwnerAddShape(uint ownerId, Shape2D shape);

Добавляет Shape2D к владельцу фигуры.

Параметры
ИмяТипПо умолчанию
ownerIduint—
shapeShape2D—
ShapeOwnerClearShapesvoid
# ShapeOwnerClearShapes
C#
public void ShapeOwnerClearShapes(uint ownerId);

Удаляет все фигуры у владельца фигуры.

Параметры
ИмяТипПо умолчанию
ownerIduint—
ShapeOwnerGetOwnerReckfellObject
# ShapeOwnerGetOwner
C#
public ReckfellObject ShapeOwnerGetOwner(uint ownerId);

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

Параметры
ИмяТипПо умолчанию
ownerIduint—
Возвращает ReckfellObject
ShapeOwnerGetShapeShape2D
# ShapeOwnerGetShape
C#
public Shape2D ShapeOwnerGetShape(uint ownerId, int shapeId);

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

Параметры
ИмяТипПо умолчанию
ownerIduint—
shapeIdint—
Возвращает Shape2D
ShapeOwnerGetShapeCountint
# ShapeOwnerGetShapeCount
C#
public int ShapeOwnerGetShapeCount(uint ownerId);

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

Параметры
ИмяТипПо умолчанию
ownerIduint—
Возвращает int
ShapeOwnerGetShapeIndexint
# ShapeOwnerGetShapeIndex
C#
public int ShapeOwnerGetShapeIndex(uint ownerId, int shapeId);

Возвращает дочерний индекс Shape2D с указанным идентификатором от указанного владельца фигуры.

Параметры
ИмяТипПо умолчанию
ownerIduint—
shapeIdint—
Возвращает int
ShapeOwnerGetTransformTransform2D
# ShapeOwnerGetTransform
C#
public Transform2D ShapeOwnerGetTransform(uint ownerId);

Возвращает Transform2D владельца фигуры.

Параметры
ИмяТипПо умолчанию
ownerIduint—
Возвращает Transform2D
ShapeOwnerRemoveShapevoid
# ShapeOwnerRemoveShape
C#
public void ShapeOwnerRemoveShape(uint ownerId, int shapeId);

Удаляет фигуру у указанного владельца фигуры.

Параметры
ИмяТипПо умолчанию
ownerIduint—
shapeIdint—
ShapeOwnerSetDisabledvoid
# ShapeOwnerSetDisabled
C#
public void ShapeOwnerSetDisabled(uint ownerId, bool disabled);

Если true, отключает владельца данной фигуры.

Параметры
ИмяТипПо умолчанию
ownerIduint—
disabledbool—
ShapeOwnerSetOneWayCollisionvoid
# ShapeOwnerSetOneWayCollision
C#
public void ShapeOwnerSetOneWayCollision(uint ownerId, bool enable);

Если enable имеет значение true, столкновения для владельца фигуры, происходящие от этого CollisionObject2D, не будут сообщаться о столкновениях с CollisionObject2D.

Параметры
ИмяТипПо умолчанию
ownerIduint—
enablebool—
ShapeOwnerSetOneWayCollisionDirectionvoid
# ShapeOwnerSetOneWayCollisionDirection
C#
public void ShapeOwnerSetOneWayCollisionDirection(uint ownerId, Vector2 direction);

Устанавливает параметр one_way_collision_direction владельца фигуры, идентифицированного заданным параметром owner_id, равным direction.

Параметры
ИмяТипПо умолчанию
ownerIduint—
directionVector2—
ShapeOwnerSetOneWayCollisionMarginvoid
# ShapeOwnerSetOneWayCollisionMargin
C#
public void ShapeOwnerSetOneWayCollisionMargin(uint ownerId, float margin);

Устанавливает one_way_collision_margin владельца фигуры, идентифицированного заданным owner_id, на margin пикселей.

Параметры
ИмяТипПо умолчанию
ownerIduint—
marginfloat—
ShapeOwnerSetTransformvoid
# ShapeOwnerSetTransform
C#
public void ShapeOwnerSetTransform(uint ownerId, Transform2D transform);

Устанавливает Transform2D для данного владельца фигуры.

Параметры
ИмяТипПо умолчанию
ownerIduint—
transformTransform2D—
_InputEventvoid
# _InputEvent
C#
public virtual void _InputEvent(Viewport viewport, InputEvent @event, int shapeIdx);

Обнаружение мыши и прикосновения InputEvents - event когда они происходят во время зависания над объектом. viewport это Viewport что событие началось в (для просмотров, кроме основного, которое должно быть обнаружено, Viewport.PhysicsObjectPicking должны быть установлены следующим образом: true). shape_idx - индекс обнаруженной формы из PhysicsServer2D. См. также Entity._UnhandledInput, CollisionObject2D.ShapeFindOwner, и CollisionObject2D.ShapeOwnerGetOwner. Примечание: InputEventScreenDrag События возникают, если при нахождении объекта в зависании или когда объект находится на пути движения. Примечание: CollisionObject2D.InputEvent требуется CollisionObject2D.InputPickable Должен быть true и по крайней мере один CollisionObject2D.CollisionLayer Немного нужно.

Параметры
ИмяТипПо умолчанию
viewportViewport—
eventInputEvent—
shapeIdxint—
_MouseEntervoid
# _MouseEnter
C#
public virtual void _MouseEnter();

Вызывается, когда указатель мыши входит в любую из фигур этого объекта. Требует, чтобы CollisionObject2D.InputPickable был true и был установлен хотя бы один бит CollisionObject2D.CollisionLayer. Обратите внимание, что перемещение между различными фигурами в пределах одного CollisionObject2D не приведет к вызову этой функции.

_MouseExitvoid
# _MouseExit
C#
public virtual void _MouseExit();

Вызывается, когда указатель мыши покидает все формы этого объекта. Требует, чтобы CollisionObject2D.InputPickable был true и был установлен хотя бы один бит CollisionObject2D.CollisionLayer. Обратите внимание, что перемещение между различными формами в пределах одного CollisionObject2D не приведет к вызову этой функции.

_MouseShapeEntervoid
# _MouseShapeEnter
C#
public virtual void _MouseShapeEnter(int shapeIdx);

Вызывается, когда указатель мыши входит в любую из фигур этого объекта или перемещается из одной фигуры в другую. shape_idx — это дочерний индекс вновь введенного Shape2D. Требует, чтобы CollisionObject2D.InputPickable был true и был вызван хотя бы один бит CollisionObject2D.CollisionLayer.

Параметры
ИмяТипПо умолчанию
shapeIdxint—
_MouseShapeExitvoid
# _MouseShapeExit
C#
public virtual void _MouseShapeExit(int shapeIdx);

Вызывается, когда указатель мыши покидает любую из фигур этого объекта. shape_idx — это дочерний индекс выведенного Shape2D. Требует, чтобы CollisionObject2D.InputPickable был true и был вызван хотя бы один бит CollisionObject2D.CollisionLayer.

Параметры
ИмяТипПо умолчанию
shapeIdxint—

Сигналы и события5

InputEventСобытие
# InputEvent
C#
public event CollisionObject2D.InputEventEventHandler InputEvent;

Обнаружение мыши и прикосновения InputEvents - event когда они происходят во время зависания над объектом. viewport это Viewport что событие началось в (для просмотров, кроме основного, которое должно быть обнаружено, Viewport.PhysicsObjectPicking должны быть установлены следующим образом: true). shape_idx - индекс обнаруженной формы из PhysicsServer2D. См. также Entity._UnhandledInput, CollisionObject2D.ShapeFindOwner, и CollisionObject2D.ShapeOwnerGetOwner. Примечание: InputEventScreenDrag События возникают, если при нахождении объекта в зависании или когда объект находится на пути движения. Примечание: CollisionObject2D.InputEvent требуется CollisionObject2D.InputPickable Должен быть true и по крайней мере один CollisionObject2D.CollisionLayer Немного нужно.

Параметры обработчика
ИмяТипПо умолчанию
viewportEntity—
eventInputEvent—
shapeIdxlong—
MouseEnteredСобытие
# MouseEntered
C#
public event Action MouseEntered;

Выдается, когда указатель мыши входит в любую из фигур этого объекта. Требует, чтобы CollisionObject2D.InputPickable был true и был установлен хотя бы один бит CollisionObject2D.CollisionLayer. Обратите внимание, что перемещение между различными фигурами в пределах одного CollisionObject2D не приведет к выдаче этого сигнала. Примечание: Из-за отсутствия непрерывного обнаружения столкновений этот сигнал может не выдаваться в ожидаемом порядке, если мышь движется достаточно быстро, а область CollisionObject2D мала. Этот сигнал также может не выдаваться, если другой CollisionObject2D перекрывает рассматриваемый CollisionObject2D.

MouseExitedСобытие
# MouseExited
C#
public event Action MouseExited;

Выдается, когда указатель мыши покидает все формы этого объекта. Требует, чтобы CollisionObject2D.InputPickable был true и был установлен хотя бы один бит CollisionObject2D.CollisionLayer. Обратите внимание, что перемещение между различными формами в пределах одного CollisionObject2D не приведет к выдаче этого сигнала. Примечание: Из-за отсутствия непрерывного обнаружения столкновений этот сигнал может не выдаваться в ожидаемом порядке, если мышь движется достаточно быстро, а область CollisionObject2D мала. Этот сигнал также может не выдаваться, если другой CollisionObject2D перекрывает рассматриваемый CollisionObject2D.

MouseShapeEnteredСобытие
# MouseShapeEntered
C#
public event CollisionObject2D.MouseShapeEnteredEventHandler MouseShapeEntered;

Вызывается, когда указатель мыши входит в любую из фигур этого объекта или перемещается из одной фигуры в другую. shape_idx — это дочерний индекс вновь введенного Shape2D. Требует, чтобы CollisionObject2D.InputPickable был true и был установлен хотя бы один бит CollisionObject2D.CollisionLayer.

Параметры обработчика
ИмяТипПо умолчанию
shapeIdxlong—
MouseShapeExitedСобытие
# MouseShapeExited
C#
public event CollisionObject2D.MouseShapeExitedEventHandler MouseShapeExited;

Вызывается, когда указатель мыши покидает любую из фигур этого объекта. shape_idx — это дочерний индекс выведенного Shape2D. Требует, чтобы CollisionObject2D.InputPickable был true и был установлен хотя бы один бит CollisionObject2D.CollisionLayer.

Параметры обработчика
ИмяТипПо умолчанию
shapeIdxlong—

CollisionObject2D.DisableModeEnum

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

Если Entity.ProcessMode установлен в Entity.ProcessModeEnum.Disabled, это не влияет на физическую симуляцию.

MakeStatic = 1

Когда Entity.ProcessMode установлен на Entity.ProcessModeEnum.Disabled, сделайте тело статичным. Не влияет на Area2D. PhysicsBody2D не может быть подвержен воздействию сил или других тел, пока он статичен. Автоматически верните PhysicsBody2D в исходный режим, когда Entity обрабатывается снова.

Remove = 0

Когда Entity.ProcessMode установлен на Entity.ProcessModeEnum.Disabled, удалить из симуляции физики, чтобы остановить все физические взаимодействия с этим CollisionObject2D. Автоматически повторно добавляется в симуляцию физики, когда Entity обрабатывается снова.

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

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

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

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