实际上角色移动XY轴反了的问题是来自Move()里面的一些配置错误。
我觉得正确的代码如下:
AddMovementInput(ForwardDirection, MovementVector.X);
AddMovementInput(RightDirection, MovementVector.Y);
在课件中的代码示例上,XY的配给是相反的。
ForwardDirection 前方向配给红色的X轴,负责前后偏移; RightDirection配给绿色的Y轴,负责左右偏移量的调整。
ad确实应该是应该应用扭转的那个Y轴。
之所以ws控制了左右,而ad控制了前后,是因为XY在AddMovementInput()上的配给 给反了。ad输入的Y轴数据操控了前后,ws输入的X轴数据操控了左右。
而取消了ad的扭转则是使ad也去负责了X轴的输入,修改了ws的扭转是让ws去进行了Y轴的输入。最后虽然是ws控制前后移动则是因为角色的前后移动由输入者,inputValue.Get<FVector2D>(),的Y轴数值控制,反之ad依然。