Version: Unity 6.1 (6000.1)
LanguageEnglish
  • C#

Vector3.Dot

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Declaration

public static float Dot(Vector3 lhs, Vector3 rhs);

Parameters

Parameter Description
lhs The left operand of the dot product.
rhs The right operand of the dot product.

Returns

float The dot product of the lhs and rhs vectors.

Description

Calculates the dot product of two three-dimensional vectors defined in the same coordinate space.

The dot product is a float value equal to the product of the magnitudes of the lhs and rhs vectors and the cosine of the angle between them.

For normalized vectors Dot returns 1 if they point in exactly the same direction, -1 if they point in completely opposite directions and zero if the vectors are perpendicular.

The dot product can also be used to find the scalar component of one vector in the direction of another vector.

// 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!"); } } } }