My player blueprint is a child of Character, so its location and movement are controlled by a Character Movement component. As it’s a VR character, and I don’t want to force players to rotate in their playspace in order to rotate in the game, I want them to be able to press a button to rotate in-place, regardless of where in their playspace they are, or if they’re using roomscale or stationary VR.
This thread has been really helpful in figuring out how to pull that off, but the issue is that SetActorTransform does nothing for a subclass of Character. After some digging, I found that the way you rotate a character is by using a Rotating Movement Component, but the problem is, its interface is a bit odd. You add the component to a blueprint, then set the rotation rate, optional pivot translation, and whether the rotation is in local or world space.
I’m not sure how to translate “I want to rotate X degrees from my current direction one time” into that. With the thread above, the blueprint it details by the end does that just fine, and it’s pretty easy to understand. But if I’m using a Character blueprint, then I’m not sure how to get the same behavior when seemingly all I can do is add a Rotation Movement Component and tell it how fast it should turn (which doesn’t work). MoveUpdatedComponent() doesn’t seem to do anything, either.
This is a real head-scratcher. Essentially, I want my player pawn to benefit from the movement gameplay code in Character, but I can’t figure out how to override its rotation.