Scripting Reference/Vector3
Comments0this wiki
< Scripting Reference
Vector3 properties
Edit
A Vector3 is an object holding a math vector (which can represent a position, a direction or an offset for instance).
Vector3s contain 3 properties x, y, z.
Example: Printing the Y component of a vector in the runtime report
Edit
local position = self.gameObject.transform:GetPosition() print( "Y is: " .. position.y )
Vector3:New
[Vector3] Vector3:New( [number] x, [number] y, [number] z ) [Vector3] Vector3:New( [number] xyz )
Returns a new Vector3.
Vector3:Length, Vector3:SqrLength
Edit
[number] Vector3:Length() [number] Vector3:SqrLength()
Returns the vector's (actual or squared) magnitude / length.
Example: Trimming a vector to a specific length
Edit
local someVector = Vector3:New( 50, 20, 30 )
local maxLength = 10
if someVector:Length() > maxLength then
someVector = someVector:Normalized() * maxLength
end
Vector3:Normalize
Edit
Vector3:Normalize()
Normalize the vector
Vector3:Normalized
Edit
[Vector3] Vector3:Normalized()
Returns a copy of the vector, normalized
Vector3:Add
Edit
Vector3:Add( [Vector3] v )
Adds the specified vector
Vector3:Subtract
Edit
Vector3:Subtract( [Vector3] v )
Subtract the specified vector
Vector3.Lerp
Edit
[Vector3] Vector3.Lerp( [Vector3] a, [Vector3] b, [number] amount )
Return the vector resulting from the linear interpolation between vector a and b by the specified amount.
Vector3.Slerp
Edit
[Vector3] Vector3.Slerp( [Vector3] a, [Vector3] b, [number] amount )
Return the vector resulting from the spherical linear interpolation between vector a and b by the specified amount.
Vector3.Dot
Edit
Vector3.Cross
Edit
Vector3.Angle
Edit
[number] Vector3.Angle( [Vector3] a, [Vector3] b )
Vector3.Distance
Edit
[Number] Vector3.Distance( [Vector3] v1, [Vector3] v2 )
Returns the Distance between v1 and v2
Vector3.Transform
Edit
[Vector3] Vector3.Transform( [Vector3] v, [Quaternion] rotation )
Returns a new version, result of the transformation of the specified vector by the specified rotation
Vector3 * number
Edit
Returns a new vector whose components are equal to those specified vector multiplied by the specified number
Vector3 * Vector3
Edit
Returns a new vector whose components are equal to each component of the first vector multiplied by each component of the second vector
Vector3 / Vector3
Edit
Returns a new vector whose components are equal to each component of the first vector divided by each component of the second vector
Vector3 + Vector3
Edit
Returns a new vector whose components are equal to each component of the second vector added to those of the first vector
Vector3 - Vector3
Edit
Returns a new vector whose components are equal to each component of the second vector subtracted from those of the first vector
Vector3:Left, Vector3:Up, Vector3:Forward
Edit
[Vector3] Vector3:Left()
[Vector3] Vector3:Up()
[Vector3] Vector3:Forward()
Returns a unit vector pointing left (X=-1, Y=0, Z=0), up (X=0, Y=1, Z=0) or forward (X=0, Y=0, Z=-1)
Example: Getting a vector pointing forward for a particular game object
Edit
-- Start with the absolute forward direction local direction = Vector3:Forward() -- Rotate it to match the object's current orientation direction = Vector3.Transform( direction, self.gameObject:GetOrientation() ) -- relative forward direction
Vector3:UnitX, Vector3:UnitY, Vector3:UnitZ
Edit
[Vector3] Vector3:UnitX() [Vector3] Vector3:UnitY() [Vector3] Vector3:UnitZ()
Returns a unit vector pointing on the X, Y or Z axis.