Legacy Documentation: Version 4.5.0

Script language:

  • JS
  • C#
  • Boo
Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

Mathf.Atan2

static function Atan2(y: float, x: float): float;
static float Atan2(float y, float x);
static def Atan2(y as float, x as float) as float

Description

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

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

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

	// Usually you use transform.LookAt for this.
	// But this can give you more control over the angle

var target : Transform;

function Update () { var relative : Vector3 = transform.InverseTransformPoint(target.position); var angle : float = Mathf.Atan2(relative.x, relative.z) * Mathf.Rad2Deg; transform.Rotate (0, angle, 0); }

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    public Transform target;
    void Update() {
        Vector3 relative = transform.InverseTransformPoint(target.position);
        float angle = Mathf.Atan2(relative.x, relative.z) * Mathf.Rad2Deg;
        transform.Rotate(0, angle, 0);
    }
}
import UnityEngine
import System.Collections

public class ExampleClass(MonoBehaviour):

	public target as Transform

	def Update() as void:
		relative as Vector3 = transform.InverseTransformPoint(target.position)
		angle as float = (Mathf.Atan2(relative.x, relative.z) * Mathf.Rad2Deg)
		transform.Rotate(0, angle, 0)