【问题标题】:Strafe from Camera-look direction using Samsung Gear-VR使用 Samsung Gear-VR 从 Camera-look 方向扫射
【发布时间】:2017-05-02 20:05:02
【问题描述】:

我在一些游戏逻辑方面遇到了一些问题。现在我有一个设置,让玩家使用带有 Gear-VR 耳机 + Gear 控制器的新三星 Galaxy S8 来探索环境。当前代码设置为玩家可以使用角色控制器使用他们正在看的方向向前和向后移动,并根据控制器的“触摸板”计算相机正在寻找的移动方向。

我在 Vector2 中有一个从 -1.0 到 1.0 的水平轴和垂直轴(基于控制器“触摸”)。

if (input.y > 0.0f || input.y < 0.0f || input.x > 0.0f || input.x < 0.0f) {
    Vector3 direction = new Vector3(cameraObject.transform.forward.x, 0, cameraObject.transform.forward.z);
    cC.Move(direction * walkSpeed * Time.deltaTime * input.y);
}

上面的代码通过计算相机正在看的方向并“朝向”它移动来向前和向后平移玩家,但我还需要向左和向右“扫射”并且似乎无法计算出来。

【问题讨论】:

  • if (input.y != 0.0f || input.x != 0.0f) { ... } 但从括号中的代码我看到你甚至不使用 input.x 所以 if 语句可以更短:if (input.y != 0.0f) { ... }

标签: unity3d unity5 gear-vr


【解决方案1】:

我之前没有使用过控制器输入,但我假设input.x 是左/右,input.y 是前进/后退,对吗?

我相信你的角色只是向前和向后移动,因为你只使用cameraObjecttransform.forawrd向量,它只在z方向,没有x分量。

试试这个(使用transform.forwardtransform.right):

cC.Move((cameraObject.transform.forward * input.y + cameraObject.transform.right * input.x) * walkSpeed * Time.deltaTime)

【讨论】:

  • 是的。 Transform.right 正是我所需要的。我只是很愚蠢,直到我查看了代码并且有人也这么说才想到它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多