# 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.0/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.0/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.0/script-reference/unityengine/transform/inversetransformdirections.md) if you are dealing with direction vectors rather than positions.

Additional Resources:[Transform.TransformPoints](/engine/6000.0/script-reference/unityengine/transform/transformpoints.md), [Transform.InverseTransformPoint](/engine/6000.0/script-reference/unityengine/transform/inversetransformpoint.md), [Transform.InverseTransformDirections](/engine/6000.0/script-reference/unityengine/transform/inversetransformdirections.md), [Transform.InverseTransformVectors](/engine/6000.0/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.0/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.0/script-reference/unityengine/transform/inversetransformdirections.md) if you are dealing with direction vectors rather than positions.

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