Vector3.Dot

static function Dot (lhs : Vector3, rhs : Vector3) : float

Description

Dot Product of two vectors.

Returns lhs . rhs.

For normalized vectors Dot returns 1 if they point in exactly the same direction; -1 if they point in completely opposite directions; and a number in between for other cases (e.g. Dot returns zero if vectors are perpendicular).

For vectors of arbitrary length the Dot return values are similar: they get larger when the angle between vectors decreases.

JavaScript
// 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 example : 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!");

}
}
}

import UnityEngine
import System.Collections

class example(MonoBehaviour):

public other as Transform

def Update():
if other:
forward as Vector3 = transform.TransformDirection(Vector3.forward)
toOther as Vector3 = (other.position - transform.position)
if Vector3.Dot(forward, toOther) < 0:
print('The other transform is behind me!')