2 つのベクトルの内積
内積は 2 つのベクトルを乗算し、
2 つのベクトル間の角度の余弦を乗算したベクトルの大きさと同じ float 値です。
2 つのベクトルがまったく同じ方向を指している場合、正規化されたベクトルの内積は 1 を返します。
反対方向を向く場合は-1 を返します。またベクトルが垂直である場合 0 を返します。
// detects if other transform is behind this object
var other : Transform; function Update() { if (other) { var forward = transform.TransformDirection(Vector3.forward); var toOther = other.position - transform.position; if (Vector3.Dot(forward,toOther) < 0) print ("The other transform is behind me!"); } }
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { public Transform other; void Update() { if (other) { Vector3 forward = transform.TransformDirection(Vector3.forward); Vector3 toOther = other.position - transform.position; if (Vector3.Dot(forward, toOther) < 0) print("The other transform is behind me!"); } } }