Параметры
from | Вектор, по которому измеряется угловая разность. |
to | Вектор, по которому измеряется угловая разность. |
axis | Вектор, вокруг которого вращаются другие векторы. |
Возвращает
float Возвращает угол со знаком между от
и до
в градусах.
Описание
Вычисляет угол со знаком между векторами от
и до
относительно оси
.
Возвращенный угол — это угол поворота от первого вектора ко второму при обработке этих первых двух входных векторов как направлений. Эти два вектора также определяют плоскость вращения, то есть они параллельны этой плоскости. Это означает, что ось вращения, вокруг которой рассчитывается угол, является перекрестным произведением первого и второго векторов (а не параметром 3-й оси). Вы можете использовать "правило левой руки", чтобы определить ось вращения по двум входным векторам. Третий вход (названный параметром «ось») дает вам возможность указать контекстное направление для включения в расчет. Это приводит к изменению знака результата в зависимости от того, падает ли этот третий вектор, который вы предоставляете, выше или ниже плоскости вращения, определяемой первыми двумя входными векторами. Следовательно, знак конечного результата зависит от двух вещей: порядка, в котором вы указываете вектор "от" и "до", и направления вектора третьей "оси".
Примечание. Возвращаемый угол всегда будет находиться в диапазоне от -180 до 180 градусов, поскольку метод возвращает наименьший угол между векторами. То есть он никогда не вернет угол отражения.
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");
}
}
Смотрите так же: Angle function.