unity FPSController 向摄像机方向移动玩家

Unity FPSController move player in direction of camera

我正在使用 Unity 5.3.4 为 Samsung Gear VR 创建 Android 游戏。我可以使用标准资产包中的 FPSController 使用蓝牙控制器在我的场景中四处走动。然而,玩家的移动方向是其 (non-existent) body 所面对的方向,而不是他所注视的方向。这使得四处走动变得相当不自然,因为 "moving forward" 不会让玩家向前移动。

我在许多论坛上找到了几个解决方案,但 none 似乎可行。我怎样才能实现这种行为?

通过更改 FirstPersonController.cs 中的 C# 代码找到了可行的解决方案:

更改包含

的 FixedUpdate() 方法中的第 100 行
Vector3 desiredMove = transform.forward*m_Input.y + transform.right*m_Input.x;

进入:

Vector3 desiredMove = m_Camera.transform.forward * m_Input.y + m_Camera.transform.right * m_Input.x;

这样,相机的当前变换用于计算所需的玩家移动。