Find Distance on Single, Relative Axis?


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!

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.