The following is part of an ongoing series of basic tutorials for gameplay scripters.
In maths a vector represents a line that has a direction and magnitude (length).
Programmatically a vector is a list of numbers, for our purposes we mostly use vectors that hold 2 or 3 numbers, with a so-called 2D vector holding two numbers, representing X and Y, while a 3D vector holds 3: X, Y and Z.
What this means practically, is that we often use vectors to hold a position in X, Y and Z. This however, is not traditionally what we mean when we’re talking about a mathematical vector.
A true vector, the line with direction and magnitude, often represents a displacement - a set of instructions that describes how far and in what direction we should move.
How the data is stored does not change, whether we are storing a displacement or a position. If you look at the above image, you can see two quite different things. A point at 3, 2 and a 3, 2 vector. We would actually store these things in exactly the same way, it is our use of it that changes what that vector actually does.
It is also worth noting that a vector in programming languages simply refers to a one-dimensional array, (single list) or numbers. A vector as the concept we are talking about here, again just refers to how you use it.
You can see from this image a number of differences. A point does not store any kind of information about heading and has no length. A vector on the other hand, has no knowledge of where it is in the world, it simply represents a set of instructions on how to move from any point.
Vector Terminology Magnitude / Length - refers to the length of the vector from start point to end point.
2D Calculations
SudoCode
√ (x * x + y * y)
Unity C#
by accessing the magnitude variable in your vector -
myVector.magnitude;
3D Calculations
SudoCode
lengthOfAdjacentSide = √ ( (x * x + y * y) )
√ ( lengthOfAdjacentSide * lengthOfAdjacentSide + z * z)
The picture above should help explain this sudocode. You are trying to work out the length of a 2D triangle described by the dashed lines. You know one size because it’s simply the Z value. The other side, the one marked adjacent, is actually the length of a 2D vector laid flat.
Unity C#
by accessing the magnitude variable in your vector
myVector.magnitude;
by calling a static function in the vector library
Vector3.Magnitude( myVector );
UE4 Blueprints