- Home /
Find Distance on Single, Relative Axis?
Hello,
The title is basically a summary of my problem, so it wasn't uncomfortably long. My issue is this:
Say I have two objects: object A and object B. Object A is at an arbitrary rotation, and object B at an arbitrary position. How can I get how far object B is on object A's X axis (not the world X axis)? In other words, how can I figure out how far to object's side object B is?
I tried, among other things, analyzing the difference from the two objects' transform positions, but this, unfortunately, includes the difference in the other axes, as well, not to mention the difference being in the world axes, not object A's transform axes.
Any ideas are welcome; thanks!
Answer by Arookas · Nov 02, 2012 at 09:57 AM
Okay, silly me; I ended up solving this by using some trigonometry that I overlooked:
var objectA : Transform;
var objectB : Transform;
// Find relative position
var relativePos = objectA.InverseTransformPoint(objectB.position);
// Get the angle in radians for cosine
var cosAngle = Mathf.Atan2(relativePos.z, relativePos.x);
// Get offset on object A's x axis
var horizontalOffset = Mathf.Cos(cosAngle) * relativePos.magnitude;
Not sure if this is the correct way of doing it, but it works flawlessly, as far as I can tell.
hey! I found that your code is working good, but I'm not good with trigonometry though... So could you please convert this code to work on the Z axis (Vertical) of the object not the X axis, thanks in advance!
Your answer
Follow this Question
Related Questions
transform.position.y and x or z + 1? 0 Answers
calculating my position from another object 1 Answer
Change position of camera on scene load? 1 Answer
How do I make one transform rotation the same as anothers? 2 Answers
How do you move the camera relative to the direction it is currently facing? 1 Answer