# TransformPoint

> Transforms position from local space to world space.

## Definition

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

## TransformPoint(Vector3)

Transforms `position` from local space to world space.

```csharp
public Vector3 TransformPoint(Vector3 position)
```

### Parameters

**** (\[Vector3]\(/engine/6000.7/script-reference/unityengine/vector3)):&#x20;

### Returns

| Type                                                              | Description |
| ----------------------------------------------------------------- | ----------- |
| [Vector3](/engine/6000.7/script-reference/unityengine/vector3.md) |             |

### Remarks

Note that the returned position is affected by scale. Use [Transform.TransformDirection](/engine/6000.7/script-reference/unityengine/transform/transformdirection.md) if you are dealing with direction vectors.

You can perform the opposite conversion, from world to local space using [Transform.InverseTransformPoint](/engine/6000.7/script-reference/unityengine/transform/inversetransformpoint.md).

If you need to transform many points at once consider using [Transform.TransformPoints](/engine/6000.7/script-reference/unityengine/transform/transformpoints.md) instead as it is much faster than repeatedly calling this function.

Additional Resources: [Transform.TransformPoints](/engine/6000.7/script-reference/unityengine/transform/transformpoints.md), [Transform.TransformDirection](/engine/6000.7/script-reference/unityengine/transform/transformdirection.md), [Transform.TransformVector](/engine/6000.7/script-reference/unityengine/transform/transformvector.md).

### Examples

```csharp
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour
{
    public GameObject someObject;
    public Vector3 thePosition;

    void Start()
    {
        // Instantiate an object to the right of the current object
        thePosition = transform.TransformPoint(Vector3.right * 2);
        Instantiate(someObject, thePosition, someObject.transform.rotation);
    }
}
```

## TransformPoint(float, float, float)

Transforms the position `x`, `y`, `z` from local space to world space.

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

### Parameters

**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): **** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): **** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)):&#x20;

### Returns

| Type                                                              | Description |
| ----------------------------------------------------------------- | ----------- |
| [Vector3](/engine/6000.7/script-reference/unityengine/vector3.md) |             |

### Remarks

Note that the returned position is affected by scale. Use [Transform.TransformDirection](/engine/6000.7/script-reference/unityengine/transform/transformdirection.md) if you are dealing with direction vectors.

You can perform the opposite conversion, from world to local space using [Transform.InverseTransformPoint](/engine/6000.7/script-reference/unityengine/transform/inversetransformpoint.md).

If you need to transform many points at once consider using [Transform.TransformPoints](/engine/6000.7/script-reference/unityengine/transform/transformpoints.md) instead as it is much faster than repeatedly calling this function.

Additional Resources: [Transform.TransformPoints](/engine/6000.7/script-reference/unityengine/transform/transformpoints.md), [Transform.TransformDirection](/engine/6000.7/script-reference/unityengine/transform/transformdirection.md), [Transform.TransformVector](/engine/6000.7/script-reference/unityengine/transform/transformvector.md).

### Examples

```csharp
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour
{
    public GameObject someObject;

    void Start()
    {
        // Instantiate an object to the right of the current object
        Vector3 thePosition = transform.TransformPoint(2, 0, 0);
        Instantiate(someObject, thePosition, someObject.transform.rotation);
    }
}
```
