Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Vector3

A 3D vector using floating point coordinates.

Description

A 3-element structure that can be used to represent 3D coordinates or any other triplet of numeric values.

It uses floating-point coordinates. By default, these floating-point values use 32-bit precision, unlike float which is always 64-bit. If double precision is needed, compile the engine with the option precision=double.

See Vector3i for its integer counterpart.

Note: In a boolean context, a Vector3 will evaluate to false if it's equal to Vector3(0, 0, 0). Otherwise, a Vector3 will always evaluate to true.

Tutorials

Properties

float

x

0.0

float

y

0.0

float

z

0.0

Constructors

Vector3

Vector3 ( )

Vector3

Vector3 ( Vector3 from )

Vector3

Vector3 ( Vector3i from )

Vector3

Vector3 ( float x, float y, float z )

Methods

Vector3

abs ( ) const

float

angle_to ( Vector3 to ) const

Vector3

bezier_derivative ( Vector3 control_1, Vector3 control_2, Vector3 end, float t ) const

Vector3

bezier_interpolate ( Vector3 control_1, Vector3 control_2, Vector3 end, float t ) const

Vector3

bounce ( Vector3 n ) const

Vector3

ceil ( ) const

Vector3

clamp ( Vector3 min, Vector3 max ) const

Vector3

cross ( Vector3 with ) const

Vector3

cubic_interpolate ( Vector3 b, Vector3 pre_a, Vector3 post_b, float weight ) const

Vector3

cubic_interpolate_in_time ( Vector3 b, Vector3 pre_a, Vector3 post_b, float weight, float b_t, float pre_a_t, float post_b_t ) const

Vector3

direction_to ( Vector3 to ) const

float

distance_squared_to ( Vector3 to ) const

float

distance_to ( Vector3 to ) const

float

dot ( Vector3 with ) const

Vector3

floor ( ) const

Vector3

inverse ( ) const

bool

is_equal_approx ( Vector3 to ) const

bool

is_finite ( ) const

bool

is_normalized ( ) const

bool

is_zero_approx ( ) const

float

length ( ) const

float

length_squared ( ) const

Vector3

lerp ( Vector3 to, float weight ) const

Vector3

limit_length ( float length=1.0 ) const

int

max_axis_index ( ) const

int

min_axis_index ( ) const

Vector3

move_toward ( Vector3 to, float delta ) const

Vector3

normalized ( ) const

Vector3

octahedron_decode ( Vector2 uv ) static

Vector2

octahedron_encode ( ) const

Basis

outer ( Vector3 with ) const

Vector3

posmod ( float mod ) const

Vector3

posmodv ( Vector3 modv ) const

Vector3

project ( Vector3 b ) const

Vector3

reflect ( Vector3 n ) const

Vector3

rotated ( Vector3 axis, float angle ) const

Vector3

round ( ) const

Vector3

sign ( ) const

float

signed_angle_to ( Vector3 to, Vector3 axis ) const

Vector3

slerp ( Vector3 to, float weight ) const

Vector3

slide ( Vector3 n ) const

Vector3

snapped ( Vector3 step ) const

Operators

bool

operator != ( Vector3 right )

Vector3

operator * ( Basis right )

Vector3

operator * ( Quaternion right )

Vector3

operator * ( Transform3D right )

Vector3

operator * ( Vector3 right )

Vector3

operator * ( float right )

Vector3

operator * ( int right )

Vector3

operator + ( Vector3 right )

Vector3

operator - ( Vector3 right )

Vector3

operator / ( Vector3 right )

Vector3

operator / ( float right )

Vector3

operator / ( int right )

bool

operator < ( Vector3 right )

bool

operator <= ( Vector3 right )

bool

operator == ( Vector3 right )

bool

operator > ( Vector3 right )

bool

operator >= ( Vector3 right )

float

operator [] ( int index )

Vector3

operator unary+ ( )

Vector3

operator unary- ( )


Constants

AXIS_X = 0

Enumerated value for the X axis. Returned by max_axis_index and min_axis_index.

AXIS_Y = 1

Enumerated value for the Y axis. Returned by max_axis_index and min_axis_index.

AXIS_Z = 2

Enumerated value for the Z axis. Returned by max_axis_index and min_axis_index.

ZERO = Vector3(0, 0, 0)

Zero vector, a vector with all components set to 0.

ONE = Vector3(1, 1, 1)

One vector, a vector with all components set to 1.

INF = Vector3(inf, inf, inf)

Infinity vector, a vector with all components set to @GDScript.INF.

LEFT = Vector3(-1, 0, 0)

Left unit vector. Represents the local direction of left, and the global direction of west.

RIGHT = Vector3(1, 0, 0)

Right unit vector. Represents the local direction of right, and the global direction of east.

UP = Vector3(0, 1, 0)

Up unit vector.

DOWN = Vector3(0, -1, 0)

Down unit vector.

FORWARD = Vector3(0, 0, -1)

Forward unit vector. Represents the local direction of forward, and the global direction of north. Keep in mind that the forward direction for lights, cameras, etc is different from 3D assets like characters, which face towards the camera by convention. Use MODEL_FRONT and similar constants when working in 3D asset space.

BACK = Vector3(0, 0, 1)

Back unit vector. Represents the local direction of back, and the global direction of south.

MODEL_LEFT = Vector3(1, 0, 0)

Unit vector pointing towards the left side of imported 3D assets.

MODEL_RIGHT = Vector3(-1, 0, 0)

Unit vector pointing towards the right side of imported 3D assets.

MODEL_TOP = Vector3(0, 1, 0)

Unit vector pointing towards the top side (up) of imported 3D assets.

MODEL_BOTTOM = Vector3(0, -1, 0)

Unit vector pointing towards the bottom side (down) of imported 3D assets.

MODEL_FRONT = Vector3(0, 0, 1)

Unit vector pointing towards the front side (facing forward) of imported 3D assets.

MODEL_REAR = Vector3(0, 0, -1)

Unit vector pointing towards the rear side (back) of imported 3D assets.


Property Descriptions

float x =