# InverseTransformVector

> Transforms the vector x, y, z from world space to local space. The opposite of TransformHandle.TransformVector.

## Definition

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

## InverseTransformVector(float, float, float)

Transforms the vector `x`, `y`, `z` from world space to local space. The opposite of [TransformHandle.TransformVector](/engine/6000.7/script-reference/unityengine/transformhandle/transformvector.md).

```csharp
public Vector3 InverseTransformVector(float x, float y, float z)
```

### Parameters

**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The x component of the vector to transform, in world space.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The y component of the vector to transform, in world space.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The z component of the vector to transform, in world space.

### Returns

| Type                                                              | Description                             |
| ----------------------------------------------------------------- | --------------------------------------- |
| [Vector3](/engine/6000.7/script-reference/unityengine/vector3.md) | The transformed vector, in local space. |

### Remarks

This operation is not affected by position of the transform but it is affected by scale. The returned vector may have a different length than `vector`.

If you need to transform many vectors at once consider using [TransformHandle.InverseTransformVectors](/engine/6000.7/script-reference/unityengine/transformhandle/inversetransformvectors.md) instead as it is much faster than repeatedly calling this function.

Additional Resources:[TransformHandle.TransformVector](/engine/6000.7/script-reference/unityengine/transformhandle/transformvector.md), [TransformHandle.InverseTransformVectors](/engine/6000.7/script-reference/unityengine/transformhandle/inversetransformvectors.md), [TransformHandle.InverseTransformPoint](/engine/6000.7/script-reference/unityengine/transformhandle/inversetransformpoint.md), [TransformHandle.InverseTransformDirection](/engine/6000.7/script-reference/unityengine/transformhandle/inversetransformdirection.md).

## InverseTransformVector(Vector3)

Transforms a `vector` from world space to local space. The opposite of [TransformHandle.TransformVector](/engine/6000.7/script-reference/unityengine/transformhandle/transformvector.md).

```csharp
public Vector3 InverseTransformVector(Vector3 vector)
```

### Parameters

**** (\[Vector3]\(/engine/6000.7/script-reference/unityengine/vector3)): The vector to transform, in world space.

### Returns

| Type                                                              | Description                             |
| ----------------------------------------------------------------- | --------------------------------------- |
| [Vector3](/engine/6000.7/script-reference/unityengine/vector3.md) | The transformed vector, in local space. |

### Remarks

This operation is not affected by position of the transform but it is affected by scale. The returned vector may have a different length than `vector`.

If you need to transform many vectors at once consider using [TransformHandle.InverseTransformVectors](/engine/6000.7/script-reference/unityengine/transformhandle/inversetransformvectors.md) instead as it is much faster than repeatedly calling this function.

Additional Resources:[TransformHandle.TransformVector](/engine/6000.7/script-reference/unityengine/transformhandle/transformvector.md), [TransformHandle.InverseTransformVectors](/engine/6000.7/script-reference/unityengine/transformhandle/inversetransformvectors.md), [TransformHandle.InverseTransformPoint](/engine/6000.7/script-reference/unityengine/transformhandle/inversetransformpoint.md), [TransformHandle.InverseTransformDirection](/engine/6000.7/script-reference/unityengine/transformhandle/inversetransformdirection.md).
