PhysicsDestructor.Fragment
Declaration
public static LowLevelPhysics2D.PhysicsDestructor.FragmentResult Fragment(LowLevelPhysics2D.PhysicsDestructor.FragmentGeometry target, ReadOnlySpan<Vector2> fragmentPoints, Unity.Collections.Allocator allocator);Параметры
| Параметр | Описание |
|---|---|
| Цель | Целевую геометрию для фрагментации. Должен быть хотя бы один элемент геометрии. Любые целевые многоугольники с ненулевым радиусом будут проигнорированы. |
| fragmentPoints | Точки фрагмента мирового пространства, используемые для определения регионов фрагмента. Число точек фрагмента должно быть больше 1. |
| распределитель | Распределитель памяти, используемый для результатов. Это может быть только Allocator.Temp, Allocator.TempJob или Allocator.Persistent. |
Возвращаемое значение
FragmentResult Результаты фрагментации. Эти результаты должны быть удалены после использования, в противном случае возникнет утечка.
Описание
Фрагментация заданной целевой геометрии с использованием заданных точек фрагментации. Точки фрагментации определяют области, в которых будут созданы фрагменты полигона из заданной геометрии. Если полученные фрагменты полигона имеют больше вершин полигона, чем может поместиться в один PolygonGeometry, то фрагмент будет разделен на несколько фрагментов полигона. Максимальное количество вершин, которое может иметь один фрагмент полигона, определяется PhysicsConstants.MaxPolygonVertices. Если даже одна точка фрагментации перекрывает заданную геометрию, то все результаты будут возвращены в PhysicsDestructor.FragmentResult.brokenGeometry. Если ни одна из точек фрагментации не перекрывает заданную геометрию, то все результаты будут возвращены в PhysicsDestructor.FragmentResult.unbrokenGeometry. См. FragmentResult.
Declaration
public static LowLevelPhysics2D.PhysicsDestructor.FragmentResult Fragment(LowLevelPhysics2D.PhysicsDestructor.FragmentGeometry target, LowLevelPhysics2D.PhysicsDestructor.FragmentGeometry mask, ReadOnlySpan<Vector2> fragmentPoints, Unity.Collections.Allocator allocator);Параметры
| Параметр | Описание |
|---|---|
| Цель | Целевую геометрию для фрагментации. Должен быть хотя бы один элемент геометрии. Любые целевые многоугольники с ненулевым радиусом будут проигнорированы. |
| маска | Геометрия маски, которая будет использоваться для обрезки целевой геометрии. Должен быть хотя бы один элемент геометрии. Любые многоугольники маски с ненулевым радиусом будут игнорироваться. |
| fragmentPoints | Точки фрагмента мирового пространства, используемые для определения регионов фрагмента. Число точек фрагмента должно быть больше 1. |
| распределитель | Распределитель памяти, используемый для результатов. Это может быть только Allocator.Temp, Allocator.TempJob или Allocator.Persistent. |
Возвращаемое значение
FragmentResult Результаты фрагмента. Преобразование, возвращаемое здесь, является тем, которое предоставлено в целевой геометрии. Эти результаты должны быть удалены после использования, иначе возникнут утечки.
Описание
Фрагментация указанной геометрии маски с использованием указанных точек фрагмента, после того как из целевой геометрии удалена геометрия маски (резки).
Целевая геометрия сначала обрезается с геометрией маски с помощью операции PhysicsComposer.Operation.NOT. Полученная геометрия возвращается в PhysicsDestructor.FragmentResult.unbrokenGeometry. Затем геометрия маски обрезается с исходной геометрией цели с помощью операции PhysicsComposer.Operation.AND. Если обрезанная маска не производит геометрии, то в PhysicsDestructor.FragmentResult.brokenGeometryне возвращается никаких результатов. Точки фрагмента определяют области, в которых будут созданы фрагменты полигона из обрезанной маскированной геометрии. Полученные фрагменты полигона возвращаются в PhysicsDestructor.FragmentResult.brokenGeometry. Если полученные фрагменты полигона имеют больше вершин полигона, чем может поместиться в один PolygonGeometry, то фрагмент будет разделен на несколько фрагментов полигона. Максимальное количество вершин, которое может иметь один фрагмент полигона, определяется PhysicsConstants.MaxPolygonVertices. См. FragmentResult.