---
title: "Quaternions"
content_type: tutorial
url: "https://learn.unity.com/tutorial/quaternions?language=en"
language: en
difficulty: intermediate
duration_minutes: 5
unity_version:
  - "2019.3"
  - "2019.2"
  - "2019.1"
  - "2018.4"
  - "2018.3"
  - "2018.2"
  - "2018.1"
  - "2017.4"
  - "2017.3"
  - "2017.2"
  - "2017.1"
  - "5.x"
  - "4.x"
supported_unity_versions:
  - name: "2019.3"
    url: "https://learn.unity.com/tutorial/quaternions.md?language=en&version=2019.3"
  - name: "2019.2"
    url: "https://learn.unity.com/tutorial/quaternions.md?language=en&version=2019.2"
  - name: "2019.1"
    url: "https://learn.unity.com/tutorial/quaternions.md?language=en&version=2019.1"
  - name: "2018.4"
    url: "https://learn.unity.com/tutorial/quaternions.md?language=en&version=2018.4"
  - name: "2018.3"
    url: "https://learn.unity.com/tutorial/quaternions.md?language=en&version=2018.3"
  - name: "2018.2"
    url: "https://learn.unity.com/tutorial/quaternions.md?language=en&version=2018.2"
  - name: "2018.1"
    url: "https://learn.unity.com/tutorial/quaternions.md?language=en&version=2018.1"
  - name: "2017.4"
    url: "https://learn.unity.com/tutorial/quaternions.md?language=en&version=2017.4"
  - name: "2017.3"
    url: "https://learn.unity.com/tutorial/quaternions.md?language=en&version=2017.3"
  - name: "2017.2"
    url: "https://learn.unity.com/tutorial/quaternions.md?language=en&version=2017.2"
  - name: "2017.1"
    url: "https://learn.unity.com/tutorial/quaternions.md?language=en&version=2017.1"
  - name: "5.x"
    url: "https://learn.unity.com/tutorial/quaternions.md?language=en&version=5.x"
  - name: "4.x"
    url: "https://learn.unity.com/tutorial/quaternions.md?language=en&version=4.x"
last_updated: "2026-08-04T14:22:35.000Z"
---

# Quaternions

Learn to use quaternions to control and manage GameObject rotation accurately in Unity.

How to utilize the quaternion system to manage the rotation of game objects.

## Quaternions

[Video](https://connect-mediagw.unity.com/h1/20220110/videos/0cdefb27-e6e3-426b-914f-c7e36d23e21a_U_Intermediate_15_Quaternions.mp4) ([Transcript (en)](https://connect-mediagw.unity.com/h1/20220112/a8895ee4-d55f-47b8-ae8a-f47cdc5cdd68_I_15_Quaternions_V2.0.vtt))

 **MotionScript**

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

public class MotionScript : MonoBehaviour 
{    
    public float speed = 3f;


    void Update () 
    {
        transform.Translate(-Input.GetAxis("Horizontal") * speed * Time.deltaTime, 0, 0);
    }
}
```

 **LookAtScript**

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

public class LookAtScript : MonoBehaviour 
{
    public Transform target;


    void Update () 
    {
        Vector3 relativePos = target.position - transform.position;
        transform.rotation = Quaternion.LookRotation(relativePos);
    }
}
```

 **GravityScript**

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

public class GravityScript : MonoBehaviour 
{
    public Transform target;


    void Update () 
    {
        Vector3 relativePos = (target.position + new Vector3(0, 1.5f, 0)) - transform.position;
        Quaternion rotation = Quaternion.LookRotation(relativePos);

        Quaternion current = transform.localRotation;

        transform.localRotation = Quaternion.Slerp(current, rotation, Time.deltaTime);
        transform.Translate(0, 0, 3 * Time.deltaTime);
    }
}
```

 **SomeClass**

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

public class SomeClass : MonoBehaviour 
{
    void Start () 
    {
        transform.rotation = Quaternion.identity;
    }
}
```
