Ok, how did you do it? Maybe other people are trying to do the same thing, but are stuck looking at a “I figured it out myself” type of solution.
Set up a loop where you use this.
local posr = CFrame.new(camera.Focus.Position, camera.Focus.Position + Vector3.new(camera.CFrame.LookVector.X, 0, camera.CFrame.LookVector.Z).Unit):Inverse() * pos.Position
local x = unit.X * 250
local y = unit.Y * 250
caption.Position = UDim2.new(0.375, x, 0.375, y)