Vector3.Dot
Declaration
public static float Dot(Vector3 lhs, Vector3 rhs);Параметры
| Параметр | Описание |
|---|---|
| лс | Левый операнд произведения точек. |
| РХС | Правый операнд произведения точек. |
Возвращаемое значение
поплавок Точковое произведение вектора lhs и вектора rhs.
Описание
Вычисляет произведение точек двух трехмерных векторов, определенных в одном координатном пространстве.
Произведение точек представляет собой число с плавающей запятой, равное произведению величин векторов lhs и rhs и косинуса угла между ними.
Для векторов normalized Произведение точек возвращает 1, если они указывают в одном и том же направлении, -1, если они указывают в совершенно противоположных направлениях, и 0, если векторы перпендикулярны.
Произведение точек также может использоваться для нахождения скалярной составляющей одного вектора в направлении другого вектора.
// detects if other transform is behind this object
using UnityEngine; using System.Collections;
public class Vector3DotProductExample : MonoBehaviour { public Transform other;
void Update() { if (other) { // transform the forward vector from local to world space Vector3 forward = transform.TransformDirection(Vector3.forward); // calculate a unit vector from the other object to this object Vector3 toOther = Vector3.Normalize(other.position - transform.position); // use the dot product sign to determine whether other is in front or behind if (Vector3.Dot(forward, toOther) < 0) { print("The other transform is behind me!"); } } } }