【Unity3d教程】用Unity復刻原神?動作系統(tǒng)教程篇8---玩家旋轉(附源

這是我覺得最離譜的地方. 視頻中大概率存在錯誤.
GetMovementInputDirection 是直接返回一個移動方向, 這個方向是將用戶輸入的 2D 矢量轉換為 3D 矢量, 也就是這樣:

顯然, 它的 y 始終為 0, 因為我們把 2D 矢量的 y 放在 3D 矢量的 z 上了, 這是符合 Unity 的, 因為 Unity 水平向前是 z 軸. 這個 3D 矢量將直接用于移動.
但是在接下來的旋轉方法中, 它將這個 3D 矢量直接傳進 Rotate 方法

并且直接在 Rotate 方法內使用 y, 這個始終為 0 的值...

并且將這部分邏輯封裝之后,,, 仍然是使用的 y

所以,,, 最終這段代碼到底是怎么跑起來的? 完全令人迷惑.
接下來是我的代碼, 為了避免歧義, 我使 Rotate 的參數(shù)是 2D 矢量.

然后里面的 x 和 y 就是正常的 x 和 y.
然后外部直接傳入用戶的原始輸入.

經運行, 效果是與視頻中一致的.
標簽: