# InverseTransformPoints

> Transforms multiple positions from world space to local space writing the transformed positions to a possibly different location.

## Definition

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

## InverseTransformPoints(ReadOnlySpan\<Vector3>, Span\<Vector3>)

Transforms multiple positions from world space to local space writing the transformed positions to a possibly different location.

```csharp
public void InverseTransformPoints(ReadOnlySpan<Vector3> positions, Span<Vector3> transformedPositions)
```

### Parameters

**** (\[ReadOnlySpan\<Vector3>]\(https\://learn.microsoft.com/dotnet/api/system.readonlyspan-1)): The positions of the points to be transformed, these vectors are not modified by the function unless the `transformedPositions` span overlaps.**** (\[Span\<Vector3>]\(https\://learn.microsoft.com/dotnet/api/system.span-1)): Receives the transformed positions of each point, must be the same length as the `positions` span otherwise an exception will be thrown.  If this span overlaps the `positions` span other than representing the exact same elements the behaviour is undefined.

### Remarks

This function is essentially the opposite of [Transform.TransformPoints](/engine/6000.7/script-reference/unityengine/transform/transformpoints.md) which is used to convert from local to world space.

Note that the returned positions are affected by scale. Use [Transform.InverseTransformDirections](/engine/6000.7/script-reference/unityengine/transform/inversetransformdirections.md) if you are dealing with direction vectors rather than positions.

Additional Resources:[Transform.TransformPoints](/engine/6000.7/script-reference/unityengine/transform/transformpoints.md), [Transform.InverseTransformPoint](/engine/6000.7/script-reference/unityengine/transform/inversetransformpoint.md), [Transform.InverseTransformDirections](/engine/6000.7/script-reference/unityengine/transform/inversetransformdirections.md), [Transform.InverseTransformVectors](/engine/6000.7/script-reference/unityengine/transform/inversetransformvectors.md).

## InverseTransformPoints(Span\<Vector3>)

Transforms multiple positions from world space to local space overwriting each original position with the transformed version.

```csharp
public void InverseTransformPoints(Span<Vector3> positions)
```

### Parameters

**** (\[Span\<Vector3>]\(https\://learn.microsoft.com/dotnet/api/system.span-1)): The positions of the points to be transformed, each is replaced by the transformed version.

### Remarks

This function is essentially the opposite of [Transform.TransformPoints](/engine/6000.7/script-reference/unityengine/transform/transformpoints.md) which is used to convert from local to world space.

Note that the returned positions are affected by scale. Use [Transform.InverseTransformDirections](/engine/6000.7/script-reference/unityengine/transform/inversetransformdirections.md) if you are dealing with direction vectors rather than positions.

Additional Resources:[Transform.TransformPoints](/engine/6000.7/script-reference/unityengine/transform/transformpoints.md), [Transform.InverseTransformPoint](/engine/6000.7/script-reference/unityengine/transform/inversetransformpoint.md), [Transform.InverseTransformDirections](/engine/6000.7/script-reference/unityengine/transform/inversetransformdirections.md), [Transform.InverseTransformVectors](/engine/6000.7/script-reference/unityengine/transform/inversetransformvectors.md).
