# TransformPoint

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

## Definition

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

## 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.6/script-reference/unityengine/vector3.md) |             |

### Remarks

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

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

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

Additional Resources: [TransformHandle.TransformPoints](/engine/6000.6/script-reference/unityengine/transformhandle/transformpoints.md), [TransformHandle.TransformDirection](/engine/6000.6/script-reference/unityengine/transformhandle/transformdirection.md), [TransformHandle.TransformVector](/engine/6000.6/script-reference/unityengine/transformhandle/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 = transformHandle.TransformPoint(2, 0, 0);
        Instantiate(someObject, thePosition, someObject.transformHandle.rotation);
    }
}
```

## TransformPoint(Vector3)

Transforms `position` from local space to world space.

```csharp
public Vector3 TransformPoint(Vector3 point)
```

### Parameters

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

### Returns

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

### Remarks

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

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

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

Additional Resources: [TransformHandle.TransformPoints](/engine/6000.6/script-reference/unityengine/transformhandle/transformpoints.md), [TransformHandle.TransformDirection](/engine/6000.6/script-reference/unityengine/transformhandle/transformdirection.md), [TransformHandle.TransformVector](/engine/6000.6/script-reference/unityengine/transformhandle/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 = transformHandle.TransformPoint(Vector3.right * 2);
        Instantiate(someObject, thePosition, someObject.transformHandle.rotation);
    }
}
```
