我在游戏逻辑方面遇到了一些问题。现在我有一个设置让玩家使用新的三星Galaxy S8和Gear-VR Headset + Gear控制器来探索环境。设置当前代码,玩家可以使用他们使用角色控制器查看的方向向前和向后移动,并根据触摸板&计算相机朝向的方向移动#39;控制器。
我有一个水平和垂直轴(基于控制器'触摸')在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);
}
上述代码通过计算相机正在查看的方向并朝着&#39;方向移动来向前和向后转换玩家。它,但我还需要的是&#39; strafe&#39;向左和向右,似乎无法弄明白。
答案 0 :(得分:1)
我之前没有使用控制器输入,但我假设input.x
是左/右而input.y
是前进/后退是正确的吗?
我相信你的角色只是向前和向后移动,因为你只使用transform.forawrd
的{{1}}向量,它只在z方向,没有x分量。
尝试此操作(使用cameraObject
和transform.forward
):
transform.right