reckfellENGINE

SeparationRayShape2D

Специальный луч для разделения контактов, направленный по +Y.

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

SeparationRayShape2D — ресурс формы для разделения контактов, а не самостоятельный RayCast2D. Луч начинается в локальном (0,0) и направлен к (0,Length), то есть по +Y. Length по умолчанию 20. Положение и направление задаются трансформацией пользователя формы. Для обычного поиска объектов лучом используйте RayCast2D или запрос пространства.

SlideOnSlope по умолчанию false: разделение направлено вдоль луча. При true решатель направляет его по нормали найденной поверхности. В прямом тесте на наклонённом прямоугольнике флаг изменил контактную пару. Это не подтверждение готового поведения персонажа на ступенях или склонах: оно зависит от тела и логики движения.

Если луч целиком внутри другой формы, контакта может не быть: текущий решатель отбрасывает такой случай. Это проверено на луче длиной 20 внутри прямоугольника 100×100. Не используйте форму как универсальную проверку нахождения внутри геометрии. Пары луч–луч также не дают обычного контакта по исходникам.

Length должен быть положительным и конечным; setter сам не выполняет эти проверки. Length/SlideOnSlope испускают Changed только при новом значении. GetRect() содержит дополнительные поля для отладочного изображения: его ширина не равна физической толщине луча.

Для коллайдера ресурс назначается Shape у CollisionShape2D внутри непосредственного родителя CollisionObject2D. Сам ресурс не ищет тела и не добавляет их в мир.

Проверены значения, события, поля GetRect(), направление +Y, пары контактов и влияние SlideOnSlope в прямом запросе. Движение персонажа, непрерывные столкновения, интерфейс редактора и изображение не проверялись.

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

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

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

Создаёт специальную форму разделяющего луча: Length=20, SlideOnSlope=false, направление локальная +Y. Это не RayCast2D и не самостоятельный поиск объектов мира.

Свойства2

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

Длина вдоль локальной +Y от начала (0,0), изначально 20. Направление меняется трансформацией формы, а не отдельным свойством направления. Setter не проверяет положительность и конечность: проверяйте вход и используйте положительное конечное значение. Изменение испускает Changed; повтор значения — нет.

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

Изначально false: контактное разделение направлено вдоль луча. При true решатель использует нормаль встреченной поверхности для направления разделения, что влияет на скольжение по склонам. Это не автоматический контроллер персонажа и не изменение направления луча. Изменение испускает Changed; повтор значения — нет.

Методы4

GetLengthfloat
# GetLength
C#
public float GetLength();

Сохранённая длина луча вдоль локальной +Y.

Возвращает float

Сохранённая длина луча вдоль локальной +Y.

GetSlideOnSlopebool
# GetSlideOnSlope
C#
public bool GetSlideOnSlope();

Текущий флаг использования нормали поверхности для разделения.

Возвращает bool

Текущий флаг использования нормали поверхности для разделения.

SetLengthvoid
# SetLength
C#
public void SetLength(float length);

Длина вдоль локальной +Y от начала (0,0), изначально 20. Направление меняется трансформацией формы, а не отдельным свойством направления. Setter не проверяет положительность и конечность: проверяйте вход и используйте положительное конечное значение. Изменение испускает Changed; повтор значения — нет.

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

Положительная конечная длина луча в локальных единицах.

SetSlideOnSlopevoid
# SetSlideOnSlope
C#
public void SetSlideOnSlope(bool active);

Изначально false: контактное разделение направлено вдоль луча. При true решатель использует нормаль встреченной поверхности для направления разделения, что влияет на скольжение по склонам. Это не автоматический контроллер персонажа и не изменение направления луча. Изменение испускает Changed; повтор значения — нет.

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

true для разделения по нормали поверхности, false для разделения вдоль луча.

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

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

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

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