# FromToRotation

> Creates a rotation from fromDirection to toDirection.

## Definition

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

## FromToRotation(Vector3, Vector3)

Creates a rotation from `fromDirection` to `toDirection`.

```csharp
public static Quaternion FromToRotation(Vector3 fromDirection, Vector3 toDirection)
```

### Parameters

**** (\[Vector3]\(/engine/6000.7/script-reference/unityengine/vector3)): A non-unit or unit vector representing a direction axis to rotate.**** (\[Vector3]\(/engine/6000.7/script-reference/unityengine/vector3)): A non-unit or unit vector representing the target direction axis.

### Returns

| Type                                                                    | Description                                                            |
| ----------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| [Quaternion](/engine/6000.7/script-reference/unityengine/quaternion.md) | A unit quaternion which rotates from `fromDirection` to `toDirection`. |

### Remarks

Use this method to rotate a transform so that one of its axes, such as the y-axis, follows the target direction, `toDirection`, in world space.

### Examples

```csharp
using UnityEngine;

public class Example : MonoBehaviour
{
    void Update()
    {
        // Sets the rotation so that the transform's y-axis goes along the global y-axis and the transform's z-axis goes along the global z-axis
        transform.rotation = Quaternion.FromToRotation(transform.up, Vector3.up) * transform.rotation;
        transform.rotation = Quaternion.FromToRotation(transform.forward, Vector3.forward) * transform.rotation;
    }
}
```

## FromToRotation(Vector3, Vector3)

Creates a rotation from `fromDirection` to `toDirection`.

```csharp
public static Quaternion FromToRotation(in Vector3 fromDirection, in Vector3 toDirection)
```

### Parameters

**** (\[Vector3]\(/engine/6000.7/script-reference/unityengine/vector3)): A non-unit or unit vector representing a direction axis to rotate.**** (\[Vector3]\(/engine/6000.7/script-reference/unityengine/vector3)): A non-unit or unit vector representing the target direction axis.

### Returns

| Type                                                                    | Description                                                            |
| ----------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| [Quaternion](/engine/6000.7/script-reference/unityengine/quaternion.md) | A unit quaternion which rotates from `fromDirection` to `toDirection`. |

### Remarks

Use this method to rotate a transform so that one of its axes, such as the y-axis, follows the target direction, `toDirection`, in world space.

### Examples

```csharp
using UnityEngine;

public class Example : MonoBehaviour
{
    void Update()
    {
        // Sets the rotation so that the transform's y-axis goes along the global y-axis and the transform's z-axis goes along the global z-axis
        transform.rotation = Quaternion.FromToRotation(transform.up, Vector3.up) * transform.rotation;
        transform.rotation = Quaternion.FromToRotation(transform.forward, Vector3.forward) * transform.rotation;
    }
}
```
