# ToPolygons

> Creates multiple PolygonGeometry from the specified geometry. A limit is imposed on small vertex distances so it is recommended that the geometry is scaled appropriately rather than on the returned geometry so geometry is not discarded due to it being invalid.

## Definition

* **Type:** Method
* **Namespace:** [Unity.U2D.Physics](/engine/6000.7/script-reference/unity/u2d/physics.md)
* **Assembly:** UnityEngine.PhysicsCore2DModule

## ToPolygons(CircleGeometry, PhysicsTransform, float, Allocator)

Creates multiple [PolygonGeometry](/engine/6000.7/script-reference/unity/u2d/physics/polygongeometry.md) from the specified geometry. A limit is imposed on small vertex distances so it is recommended that the geometry is scaled appropriately rather than on the returned geometry so geometry is not discarded due to it being invalid.

```csharp
public static NativeArray<PolygonGeometry> ToPolygons(CircleGeometry geometry, PhysicsTransform transform, float curveStride = 0.06, Allocator allocator = Allocator.Temp)
```

### Parameters

**** (\[CircleGeometry]\(/engine/6000.7/script-reference/unity/u2d/physics/circlegeometry)): The geometry to convert to polygon geometry.**** (\[PhysicsTransform]\(/engine/6000.7/script-reference/unity/u2d/physics/physicstransform)): The transform used to specify where the geometry is positioned.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The curve stride only used when creating curves i.e. shapes with a non-zero radius. Lower values produce more vertices, larger values fewer vertices. The valid range is \[[PhysicsComposer.MinCurveStride](/engine/6000.7/script-reference/unity/u2d/physics/physicscomposer/mincurvestride.md), 1.0].**** (\[Allocator]\(/engine/6000.7/script-reference/unity/collections/allocator)): The memory allocator to use for the results. This can only be [Allocator.Temp](/engine/6000.7/script-reference/unity/collections/allocator/temp.md), [Allocator.TempJob](/engine/6000.7/script-reference/unity/collections/allocator/tempjob.md) or [Allocator.Persistent](/engine/6000.7/script-reference/unity/collections/allocator/persistent.md).

### Returns

| Type                                                                                               | Description                                                                                                                                                |
| -------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [NativeArray\<PolygonGeometry>](/engine/6000.7/script-reference/unity/collections/nativearray1.md) | The created polygon geometries. This NativeArray must be disposed of after use otherwise leaks will occur. The exception to this is if the array is empty. |

## ToPolygons(CapsuleGeometry, PhysicsTransform, float, Allocator)

Creates multiple [PolygonGeometry](/engine/6000.7/script-reference/unity/u2d/physics/polygongeometry.md) from the specified geometry. A limit is imposed on small vertex distances so it is recommended that the geometry is scaled appropriately rather than on the returned geometry so geometry is not discarded due to it being invalid.

```csharp
public static NativeArray<PolygonGeometry> ToPolygons(CapsuleGeometry geometry, PhysicsTransform transform, float curveStride = 0.06, Allocator allocator = Allocator.Temp)
```

### Parameters

**** (\[CapsuleGeometry]\(/engine/6000.7/script-reference/unity/u2d/physics/capsulegeometry)): The geometry to convert to polygon geometry.**** (\[PhysicsTransform]\(/engine/6000.7/script-reference/unity/u2d/physics/physicstransform)): The transform used to specify where the geometry is positioned.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The curve stride only used when creating curves i.e. shapes with a non-zero radius. Lower values produce more vertices, larger values fewer vertices. The valid range is \[[PhysicsComposer.MinCurveStride](/engine/6000.7/script-reference/unity/u2d/physics/physicscomposer/mincurvestride.md), 1.0].**** (\[Allocator]\(/engine/6000.7/script-reference/unity/collections/allocator)): The memory allocator to use for the results. This can only be [Allocator.Temp](/engine/6000.7/script-reference/unity/collections/allocator/temp.md), [Allocator.TempJob](/engine/6000.7/script-reference/unity/collections/allocator/tempjob.md) or [Allocator.Persistent](/engine/6000.7/script-reference/unity/collections/allocator/persistent.md).

### Returns

| Type                                                                                               | Description                                                                                                                                                |
| -------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [NativeArray\<PolygonGeometry>](/engine/6000.7/script-reference/unity/collections/nativearray1.md) | The created polygon geometries. This NativeArray must be disposed of after use otherwise leaks will occur. The exception to this is if the array is empty. |
