Like this? https://www.youtube.com/watch?v=IlxKAmCR94w
This is a quick idea just for fun:
- For keyboard: create a map <key, bool> to keep track of what keys are still pressed
– Pressed == true, Released == false. - Loop through the values pf the map searching for true (means a button is still pressed). If found, stop search and do nothing.
- Update orientation when all keys are released (all values == false).
How I move the character:
With a controller I think you should check for Axis Value to be 0 or abs(0.##) before updating the orientation.
The Actor that changed the camera is simple, it just checks for character to overlap. I have a component that I can rotate in world space for the orientation to pass to the character and finally set the camera added from the editor viewport.
The “level”… this was fun
Hope it helps.