Mathf.Atan2
Declaration
public static float Atan2(float y, float x);Параметры
| Параметр | Описание |
|---|---|
| y | Y-компонент входного вектора 2D. |
| x | X-компонент входного вектора 2D. |
Возвращаемое значение
поплавок Угол в радианах между векторами (x,y) и единичным вектором (1,0) в диапазоне [-Pi, Pi].
Описание
Возвращает угол в радианах, для которого Tan равно y/x.
Возвращаемое значение представляет собой угол между единичным вектором оси x (1, 0) и вектором 2D, начинающимся в нуле и заканчивающимся в (x,y).
Примечание: Эта функция учитывает случаи, когда x равно нулю, и возвращает правильный угол, а не делит на нулевой исключение.
Дополнительные ресурсы: Tan, Atan.
using UnityEngine;
public class ExampleClass : MonoBehaviour { public Transform target; public float turnSpeed = 2f; // higher = faster slerp
void Update() { if (!target) return;
// Compute desired yaw angle to target in local space Vector3 relative = transform.InverseTransformPoint(target.position); float angle = Mathf.Atan2(relative.x, relative.z) * Mathf.Rad2Deg;
// Build target rotation around global up (yaw only) Quaternion targetRotation = Quaternion.Euler(0f, transform.eulerAngles.y + angle, 0f);
// Smoothly rotate toward the target rotation transform.rotation = Quaternion.Slerp( transform.rotation, targetRotation, Time.deltaTime * turnSpeed ); } }