Im trying to set up a simple object interaction mechanic. I want to be able to stand close enough to an object while looking at it and have some interact text show up on screen. I have successfully implemented this with a LineTraceSingleByChannel with start trace as the player location and end trace as an arbitrary distance in the forward vector direction. However, the problem arises that some meshes are too small, skinny, at the players feet, at the players head, etc. This makes the linetrace inconsistent depending on the location and size of the mesh. I was thinking to solve this I would give each object a collision box and then have the linetrace activate when it collides with the box. However I want this box to be invisible and the player to still be able to walk through it as if it doesn’t exist. How would I go about implementing this, preferably in C++?
Note: Its a top-down game so making the linetrace start at the camera wouldn’t be applicable here.