【发布时间】:2016-05-23 21:17:28
【问题描述】:
我正在使用 Unity 5.3.4 为 Samsung Gear VR 创建 Android 游戏。我可以使用标准资产包中的 FPSController 使用蓝牙控制器在我的场景中四处走动。但是,玩家会朝其(不存在的)身体所面对的方向移动,而不是朝他所看的方向移动。这使得四处走动相当不自然,因为“向前移动”不会让玩家向前移动。
我在许多论坛上找到了几种解决方案,但似乎都没有。我怎样才能实现这种行为?
【问题讨论】:
我正在使用 Unity 5.3.4 为 Samsung Gear VR 创建 Android 游戏。我可以使用标准资产包中的 FPSController 使用蓝牙控制器在我的场景中四处走动。但是,玩家会朝其(不存在的)身体所面对的方向移动,而不是朝他所看的方向移动。这使得四处走动相当不自然,因为“向前移动”不会让玩家向前移动。
我在许多论坛上找到了几种解决方案,但似乎都没有。我怎样才能实现这种行为?
【问题讨论】:
通过更改 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;
这样,相机的当前变换用于计算所需的玩家运动。
【讨论】: