Version: 2021.3

# Vector2.SignedAngle

public static float SignedAngle (Vector2 from, Vector2 to);

## 参数

 from 测量角度差的源向量。 to 测量角度差的目标向量。

## 返回

float The signed angle in degrees between the two vectors.

## 描述

Gets the signed angle in degrees between `from` and `to`.

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.

```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);
}
}
```