Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


Vector3

Representation of 3D vectors and points.
Read time 3 minutesLast updated 4 days ago

Definition

public struct Vector3 : IEquatable<Vector3>, IFormattable

Remarks

This structure is used throughout Unity to pass 3D positions and directions around. It also contains functions for doing common vector operations.
Besides the functions listed below, other classes can be used to manipulate vectors and points as well. For example the Quaternion and the Matrix4x4 classes are useful for rotating or transforming vectors and points.

Fields

Value

Description

xX component of the vector.
yY component of the vector.
zZ component of the vector.

Constructors

Constructor

Description

Vector3(System.Single,System.Single)Creates a new three dimensional vector or point in the xy-plane.
Vector3(System.Single,System.Single,System.Single)Creates a new three-dimensional vector or point.

Properties

Property

Description

this[]Access the x, y, z components using [0], [1], [2] respectively.
magnitudeReturns the length of this vector (Read Only).
normalizedThe unit vector in the direction of the current vector.
sqrMagnitudeReturns the squared length of this vector (Read Only).

Static Properties

Property

Description

backShorthand for writing
Vector3(0, 0, -1)
.
downShorthand for writing
Vector3(0, -1, 0)
.
forwardShorthand for writing
Vector3(0, 0, 1)
.
leftShorthand for writing
Vector3(-1, 0, 0)
.
negativeInfinityShorthand for writing
Vector3(float.NegativeInfinity, float.NegativeInfinity, float.NegativeInfinity)
.
oneShorthand for writing
Vector3(1, 1, 1)
.
positiveInfinityShorthand for writing
Vector3(float.PositiveInfinity, float.PositiveInfinity, float.PositiveInfinity)
.
rightShorthand for writing
Vector3(1, 0, 0)
.
upShorthand for writing
Vector3(0, 1, 0)
.
zeroShorthand for writing
Vector3(0, 0, 0)
.

Methods

Method

Description

EqualsChecks if the given object is exactly equal to this vector.
NormalizeNormalizes the magnitude of the current vector to 1 while maintaining the direction.
ScaleMultiplies every component of this vector by the same component of
scale
.
SetSet x, y and z components of an existing Vector3.
ToStringFormats this vector as a string.

Static Methods

Method

Description

AngleCalculates the angle between two vectors.
ClampMagnitudeCreates a copy of a given Vector3 with its magnitude clamped to a maximum length.
CrossCalculates the cross product of two three-dimensional vectors.
DistanceCalculates the distance between two three-dimensional points.
DotCalculates the dot product of two three-dimensional vectors defined in the same coordinate space.
LerpInterpolates linearly between two points.
LerpUnclampedInterpolates linearly between two vectors, allowing extrapolation beyond the end points.
MaxCreates a vector that is made from the largest components of two vectors.
MinCreates a vector that is made from the smallest components of two vectors.
MoveTowardsMoves vector incrementally towards a target point.
NormalizeCreates a normalized copy of the given vector.
OrthoNormalizeMakes vectors normalized and orthogonal to each other.
ProjectProjects a vector onto another vector.
ProjectOnPlaneProjects a vector onto a plane.
ReflectReflects a vector off the plane defined by a normal vector.
RotateTowardsRotates a vector
current
towards
target
.
ScaleMultiplies two vectors component-wise.
SignedAngleCalculates the signed angle between two vectors, using a third vector to determine the sign.
SlerpSpherically interpolates between two three-dimensional vectors.
SlerpUnclampedSpherically interpolates between two vectors.
SmoothDampGradually changes a vector towards a desired goal over time.

Operators

Operator

Description

operator +Adds two three-dimensional vectors with component-wise addition.
operator /Divides a vector by a number.
operator ==Returns true if two vectors are approximately equal.
Vector3Converts a float3 to a Vector3.
float3Converts a Vector3 to a float3.
operator !=Returns true if vectors are different.
operator *Multiplies a vector by a number.
operator -Subtracts one vector from another.