SegmentShape2D
Отрезок между двумя локальными точками, без толщины.
SegmentShape2D задаёт один отрезок с концами A и B. По умолчанию A=(0,0), B=(0,10). B — координата второго конца, не смещение от A. Например, A=(-10,0), B=(10,0) даёт горизонтальный отрезок длиной 20. Используйте конечные различные концы.
Физическая форма не имеет толщины. Толстая линия диагностической отрисовки не превращает её в прямоугольник: в проверке круг радиуса 1 пересекал линию при центре (0,0.5), но не при (0,2). Для стены с толщиной используйте RectangleShape2D или выпуклый полигон.
GetRect() охватывает локальные A и B. У горизонтального отрезка высота границ равна 0, у вертикального ширина равна 0; это допустимый результат, а не ошибка загрузки. Для столкновения используйте запрос формы, а не наличие площади у прямоугольника. A/B и SetA/SetB обновляют одну геометрию; Changed испускается только при новом значении.
Для коллайдера назначьте ресурс Shape у CollisionShape2D, который должен быть непосредственным дочерним Entity CollisionObject2D. Создание ресурса само по себе не добавляет тело в мир. Общий ресурс меняется у всех пользователей.
Проверены начальные значения, оба setter/getter, события, локальные границы и прямые пересечения с кругом. Не проверялись физическая реакция тел, быстрые движения, визуальное качество и другие backend.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
SegmentShape2DКонструктор
public SegmentShape2D();Создаёт отрезок от A=(0,0) до B=(0,10), без физической толщины. Не создаёт тело или видимую линию автоматически.
Свойства2
AСвойство
public Vector2 A { get; set; }Локальная координата первого конца, изначально (0,0). Второй конец хранится в B; это не позиция Entity в мире. Задавайте конечные разные концы. Изменение обновляет физическую форму и испускает Changed; повтор значения — нет.
BСвойство
public Vector2 B { get; set; }Локальная координата второго конца, изначально (0,10). Это точка, а не размер прямоугольника или вектор от A. Задавайте конечное значение, отличное от A. Изменение испускает Changed; повтор значения — нет.
Методы4
GetAVector2
public Vector2 GetA();Сохранённая локальная координата первого конца.
Vector2Сохранённая локальная координата первого конца.
GetBVector2
public Vector2 GetB();Сохранённая локальная координата второго конца, не смещение от A.
Vector2Сохранённая локальная координата второго конца, не смещение от A.
SetAvoid
public void SetA(Vector2 a);Локальная координата первого конца, изначально (0,0). Второй конец хранится в B; это не позиция Entity в мире. Задавайте конечные разные концы. Изменение обновляет физическую форму и испускает Changed; повтор значения — нет.
| Имя | Тип | По умолчанию |
|---|---|---|
a | Vector2 | — |
aНовая локальная координата A; конечная и отличная от B.
SetBvoid
public void SetB(Vector2 b);Локальная координата второго конца, изначально (0,10). Это точка, а не размер прямоугольника или вектор от A. Задавайте конечное значение, отличное от A. Изменение испускает Changed; повтор значения — нет.
| Имя | Тип | По умолчанию |
|---|---|---|
b | Vector2 | — |
bНовая локальная координата B; конечная и отличная от A, не смещение от неё.