SignedAngle(Vector2, Vector2)
Gets the signed angle in degrees between from and to.
Read time 2 minutesLast updated 4 days ago
Definition
- Type: Method
- Namespace: UnityEngine
- Assembly: UnityEngine.CoreModule
public static float SignedAngle(Vector2 from, Vector2 to)
Parameters
Returns
Type | Description |
|---|---|
| float | The signed angle in degrees between the two vectors. |
Remarks
The angle returned is the signed counterclockwise angle between the two vectors.
Note: The angle returned will always be between -180 and 180 degrees, because the method returns the smallest angle between the vectors. That is, it will never return a reflex angle. Angles are calculated from world origin point (0,0,0) as the vertex.
Additional Resources: Vector2.Angle function.
Examples
using UnityEngine;public class Vector : MonoBehaviour{ //Use these to get the GameObject's positions Vector2 m_MyFirstVector; Vector2 m_MySecondVector; float m_Angle; //You must assign to these two GameObjects in the Inspector public GameObject m_MyObject; public GameObject m_MyOtherObject; void Start() { //Initialise the Vector m_MyFirstVector = Vector2.zero; m_MySecondVector = Vector2.zero; m_Angle = 0.0f; } void Update() { //Fetch the first GameObject's position m_MyFirstVector = new Vector2(m_MyObject.transform.position.x, m_MyObject.transform.position.y); //Fetch the second GameObject's position m_MySecondVector = new Vector2(m_MyOtherObject.transform.position.x, m_MyOtherObject.transform.position.y); //Find the angle for the two Vectors m_Angle = Vector2.SignedAngle(m_MyFirstVector, m_MySecondVector); //Draw lines from origin point to Vectors Debug.DrawLine(Vector2.zero, m_MyFirstVector, Color.magenta); Debug.DrawLine(Vector2.zero, m_MySecondVector, Color.blue); //Log values of Vectors and angle in Console Debug.Log("MyFirstVector: " + m_MyFirstVector); Debug.Log("MySecondVector: " + m_MySecondVector); Debug.Log("Angle Between Objects: " + m_Angle); } void OnGUI() { //Output the angle found above GUI.Label(new Rect(25, 25, 200, 40), "Angle Between Objects" + m_Angle); }}