# CreateFromSprite

> Create polygon shapes using the selected sprite.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.6/script-reference/unityengine.md)
* **Assembly:** UnityEngine.Physics2DModule

## CreateFromSprite(Sprite, float, byte, bool)

Create polygon shapes using the selected sprite.

```csharp
public bool CreateFromSprite(Sprite sprite, float detail, byte alphaTolerance, bool holeDetection)
```

### Parameters

**** (\[Sprite]\(/engine/6000.6/script-reference/unityengine/sprite)): The sprite to extract the polygon shape data from.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The detail used when tessellating the sprite outline, in the range \[0, 1]. This is only used if the `sprite` doesn't already have its own PhysicsShape outline(s) or `usePhysicsShapes` is false. This value has the same meaning as the similarly named property in the Sprite Editor.**** (\[byte]\(https\://learn.microsoft.com/dotnet/api/system.byte)): The alpha tolerance used to separate the sprite from its background, in the range \[0, 255]. This is only used if the `sprite` doesn't already have its own PhysicsShape outline(s) or `usePhysicsShapes` is false. This value has the same meaning as the similarly named property in the Sprite Editor.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Selects whether internal holes should be detected when creating the sprite outlines. This is only used if the `sprite` doesn't already have its own PhysicsShape outline(s) or `usePhysicsShapes` is false. This value has the same meaning as the similarly named property in the Sprite Editor.

### Returns

| Type                                                          | Description                                                                                                                                                                  |
| ------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | Returns `true` if the selected sprite resulted in polygon shapes being created. Returns `false` if not, in which case the Collider will be set to a default primitive shape. |

### Remarks

If the selected `sprite` already has its own PhysicShape(s) defined in the Sprite Editor then that outline will be tessellated into polygon shapes to be used here.

If the selected `sprite` does not have its own PhysicsShape(s) then a new outline will be created using the additional arguments provided. This takes additional time and in all cases, it is preferred that each [Sprite](/engine/6000.6/script-reference/unityengine/sprite.md) has its own PhysicsShape(s) defined.

**NOTE**: If PhysicsShape(s) are not available in the Sprite and the additional arguments are used in a player build then the [Sprite.texture](/engine/6000.6/script-reference/unityengine/sprite/texture.md) must have read/write enabled in the importer so it is [readable](/engine/6000.6/script-reference/unityengine/texture/isreadable.md).

Additional Resources: [Sprite](/engine/6000.6/script-reference/unityengine/sprite.md), [Sprite.GetPhysicsShapeCount](/engine/6000.6/script-reference/unityengine/sprite/getphysicsshapecount.md), [Sprite.GetPhysicsShape](/engine/6000.6/script-reference/unityengine/sprite/getphysicsshape.md) and [Sprite.GetPhysicsShapePointCount](/engine/6000.6/script-reference/unityengine/sprite/getphysicsshapepointcount.md).

## CreateFromSprite(Sprite, float, byte, bool, bool)

Create polygon shapes using the selected sprite.

```csharp
public bool CreateFromSprite(Sprite sprite, float detail = 0.25, byte alphaTolerance = 200, bool holeDetection = true, bool usePhysicsShapes = true)
```

### Parameters

**** (\[Sprite]\(/engine/6000.6/script-reference/unityengine/sprite)): The sprite to extract the polygon shape data from.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The detail used when tessellating the sprite outline, in the range \[0, 1]. This is only used if the `sprite` doesn't already have its own PhysicsShape outline(s) or `usePhysicsShapes` is false. This value has the same meaning as the similarly named property in the Sprite Editor.**** (\[byte]\(https\://learn.microsoft.com/dotnet/api/system.byte)): The alpha tolerance used to separate the sprite from its background, in the range \[0, 255]. This is only used if the `sprite` doesn't already have its own PhysicsShape outline(s) or `usePhysicsShapes` is false. This value has the same meaning as the similarly named property in the Sprite Editor.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Selects whether internal holes should be detected when creating the sprite outlines. This is only used if the `sprite` doesn't already have its own PhysicsShape outline(s) or `usePhysicsShapes` is false. This value has the same meaning as the similarly named property in the Sprite Editor.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Selects whether the outline should use the PhysicsShape outline(s) defined in the `sprite`. If true, they are used (if available) however if false then they are never used even if available.

### Returns

| Type                                                          | Description                                                                                                                                                                  |
| ------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | Returns `true` if the selected sprite resulted in polygon shapes being created. Returns `false` if not, in which case the Collider will be set to a default primitive shape. |

### Remarks

If the selected `sprite` already has its own PhysicShape(s) defined in the Sprite Editor then that outline will be tessellated into polygon shapes to be used here.

If the selected `sprite` does not have its own PhysicsShape(s) then a new outline will be created using the additional arguments provided. This takes additional time and in all cases, it is preferred that each [Sprite](/engine/6000.6/script-reference/unityengine/sprite.md) has its own PhysicsShape(s) defined.

**NOTE**: If PhysicsShape(s) are not available in the Sprite and the additional arguments are used in a player build then the [Sprite.texture](/engine/6000.6/script-reference/unityengine/sprite/texture.md) must have read/write enabled in the importer so it is [readable](/engine/6000.6/script-reference/unityengine/texture/isreadable.md).

Additional Resources: [Sprite](/engine/6000.6/script-reference/unityengine/sprite.md), [Sprite.GetPhysicsShapeCount](/engine/6000.6/script-reference/unityengine/sprite/getphysicsshapecount.md), [Sprite.GetPhysicsShape](/engine/6000.6/script-reference/unityengine/sprite/getphysicsshape.md) and [Sprite.GetPhysicsShapePointCount](/engine/6000.6/script-reference/unityengine/sprite/getphysicsshapepointcount.md).
