# Atan2(float, float)

> Returns the angle in radians whose Mathf.Tan is y/x.

## Definition

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

```csharp
public static float Atan2(float y, float x)
```

### Parameters

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

### Returns

| Type                                                          | Description |
| ------------------------------------------------------------- | ----------- |
| [float](https://learn.microsoft.com/dotnet/api/system.single) |             |

### Remarks

Return value is the angle between the x-axis and a 2D vector starting at zero and terminating at (x,y).

**Note:** This function takes account of the cases where x is zero and returns the correct angle rather than throwing a division by zero exception.

### Examples

```csharp
using UnityEngine;

public class ExampleClass : MonoBehaviour
{
    public Transform target;
    public float turnSpeed = 2f; // higher = faster slerp

    void Update()
    {
        if (!target) return;

        // Compute desired yaw angle to target in local space
        Vector3 relative = transform.InverseTransformPoint(target.position);
        float angle = Mathf.Atan2(relative.x, relative.z) * Mathf.Rad2Deg;

        // Build target rotation around global up (yaw only)
        Quaternion targetRotation = Quaternion.Euler(0f, transform.eulerAngles.y + angle, 0f);

        // Smoothly rotate toward the target rotation
        transform.rotation = Quaternion.Slerp(
            transform.rotation,
            targetRotation,
            Time.deltaTime * turnSpeed
        );
    }
}
```
