from | The vector from which the angular difference is measured. |

to | The vector to which the angular difference is measured. |

axis | A vector around which the other vectors are rotated. |

Returns the signed angle in degrees between `from`

and `to`

.

The smaller of the two possible angles between the two vectors is returned, therefore the result will never be greater than 180 degrees or smaller than -180 degrees.
If you imagine the from and to vectors as lines on a piece of paper, both originating from the same point, then the `axis`

vector would point up out of the paper.
The measured angle between the two vectors would be positive in a clockwise direction and negative in an anti-clockwise direction.

using UnityEngine; using System.Collections;

public class ExampleClass : MonoBehaviour { public Transform target; void Update() { Vector3 targetDir = target.position - transform.position; Vector3 forward = transform.forward; float angle = Vector3.SignedAngle(targetDir, forward, Vector3.up); if (angle < -5.0F) print("turn left"); else if (angle > 5.0F) print("turn right"); else print("forward"); } }

See Also: Angle function.

Copyright © 2017 Unity Technologies. Publication 2017.2