I am a bit confused regarding how tracing works atm.
In this picture i have 3 traces. One traces from nothing and hits the black block. The other trace starts inside the black block, then registers a succesful trace once it reaches the end of the black block and the other trace misses everything.
I was under the impression the 2nd trace, the one inside the black block would not return a value because it originates inside the block. Which is a BSP brush or a mesh.
But this is not the case.
Is this expected behavior?
There seems to be no option to ignore back facing or preventing a trace from registering if it originates inside a collision.
To get around this issue i now do additional traces.
If that weird trace registers a hit, i do a trace upwards to see if anything is above it, and a trace forwards.
If the fwd trace is true and the upwards trace is true then it ignores the weird trace.
I am assuming the reason the trace originally registers a hit is because it does not actually check if its colliding with anything like spawning an actor does. It only perceives the edges as collisions and ignores anything inside of it and sees it as an empty space.
We could use trace everywhere because it is extremely simple and straightforward function: it just moving from point A to point B and reports whenever it hit something.
It does not know about possibility to be “inside” of objects, because it operates with surfaces only