- Home /
Direction of another GameObject as Compass reading (N, NW, ...)?
Another question :)
How can I determine the direction of GameObjectB relative to GameObjectA, as a compass reading (NW, N, NE, E, ...)?
I have looked into this discussion
but it's not exactly what I need (I think). In effect, I would have to go something like this (let's say North is at the top of the viewport)
If B is "under" and to the "left" of A, then B is in South-Western direction relative to A.
Comment
Answer by Khada · Oct 18, 2013 at 02:25 PM
The dot product is your friend here. Here is some pseudo code off the top of my head. It's a simplification but should at least offer a starting point.
dirToB = Normalize(objB.position - objA.position)
northernness = Dot(dirToB, northDir)
easternness = Dot(dirToB, eastDir)
if(northernness > 0.7)
compassDir = 'N'
else if(northernness < -0.7)
compassDir = 'S'
else if(easternness > 0.7)
compassDir = 'E'
else if(easternness < -0.7)
compassDir = 'W'
else
if(northernness > 0)
compassDir += 'N'
else
compassDir += 'S'
if(easternness > 0)
compassDir += 'E'
else
compassDir += 'W'
print(compassDir)