There would be many ways to do it!
Right now you have big trigger that when you enter switches rooms, right?
So let's keep 2 variables: CurrentPosition and PreviousPosition
Everytime you trigger a switch, first set the PreviousPosition as the CurrentPosition, and then get the room's position and set it to the new CurrentPosition.
Now use get Vector3 XYZ and get the X of the Previous and Current Positions. Compare them with Compare Float. Here there are 3 possibilities: CurrentPosition's X is lower than PreviousPositions, so you moved Left. X is higher, so you moved right. X is the same, so you didn't move in the X axis.
If you didn't move in the X axis, do the same thing for the Y axis.
Make sure your triggers are aligned to a grid for this approach though.
Let me know if that gives you an idea of where to go. As I said, there would be many ways to do it, some are more complex but give you more to work on if you need it, but sometimes simple does it.
Also, bad news, the head scratching never goes away with this stuff!