【Unity3d教程】用Unity复刻原神?动作系统教程篇8---玩家旋转(附源

这是我觉得最离谱的地方. 视频中大概率存在错误.
GetMovementInputDirection 是直接返回一个移动方向, 这个方向是将用户输入的 2D 矢量转换为 3D 矢量, 也就是这样:

显然, 它的 y 始终为 0, 因为我们把 2D 矢量的 y 放在 3D 矢量的 z 上了, 这是符合 Unity 的, 因为 Unity 水平向前是 z 轴. 这个 3D 矢量将直接用于移动.
但是在接下来的旋转方法中, 它将这个 3D 矢量直接传进 Rotate 方法

并且直接在 Rotate 方法内使用 y, 这个始终为 0 的值...

并且将这部分逻辑封装之后,,, 仍然是使用的 y

所以,,, 最终这段代码到底是怎么跑起来的? 完全令人迷惑.
接下来是我的代码, 为了避免歧义, 我使 Rotate 的参数是 2D 矢量.

然后里面的 x 和 y 就是正常的 x 和 y.
然后外部直接传入用户的原始输入.

经运行, 效果是与视频中一致的.