Unity FPSController 将玩家沿摄像机方向移动



我正在使用Unity 5.3.4为Samsung Gear VR创建Android游戏。我能够使用标准资产包中的 FPSController 使用蓝牙控制器在我的场景中四处走动。但是,玩家会朝着其(不存在的)身体面向的方向移动,而不是朝他正在看的方向移动。这使得四处走动变得相当不自然,因为"向前移动"不会让玩家前进。

我已经在许多论坛上找到了几种解决方案,但似乎都没有奏效。如何实现此行为?

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

更改方法 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;

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

最新更新