Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

LookVector between two positions?

I'm making a compass, and I need to find the lookvector of the position of my character and the position of a part, so basically the lookvector as if one Vector3 was looking at the end Vector3. Once I have this I can just use math.atan2(Pos.x, Pos.z) to get my degree and put it onto the compass gui. Any help?

1 answer

✓ Accepted answer

First, you can do exactly that by getting the lookVector of a CFrame that points the way you want. Luckily, there's a convenient constructor for that:

local cf = CFrame.new( from, to )
-- a CFrame located AT from, pointing TOWARDS to

local dir = cf.lookVector

Of course, this indirection isn't necessary.


To get from vector A to vector B, you have to travel a certain amount. That "travel" is also a vector, called a displacement. You compute displacement by subtracting: d = B - A. (This makes since A + d = A + B - A = B).

A displacement has a length -- the distance between A and B. For many things, you want to ignore the distance (for example, in the compass) -- you just want the direction.

Strictly speaking, that's not possible with a vector. But you can get a unit vector in the same direction -- a vector with the same direction, but unit (1) length.

local dir = (to - from).unit

This discussion is preserved as it was. New answers, comments, and votes are closed.