创建我自己的fps控制器的统一问题



我正在为我的游戏制作第一人称玩家控制器,但我有一个小问题。我的代码工作得很好,直到我用相机旋转180度,然后运动反转。

一些变量声明:

  • 水平是"Horizontal"轴
  • 纵向为"纵向";轴

我的代码:

gameObject.transform.Translate((playerCamera.transform.right * horizontal).x * Time.deltaTime * speed, 
0f, (playerCamera.transform.forward * vertical).z * Time.deltaTime * speed);

第一人称镜头效果很好。

编辑:我切换到字符控制器,现在它工作了。

你需要指定脚本所附加的游戏对象以及场景中涉及的游戏对象的层次结构。可能你正在翻译一个基于其他gameObject转换的gameObject,它们不是父对象,所以如果它们不移动,你就得不到你想要的结果。

gameObject.transform.Translate((playerCamera.transform.right * horizontal).x * 
^^^^^^^^^^^^^^^^^^^^            ^^^^^^^^^^^^^^^^^^^^^^ 
Time.deltaTime * speed, 
0f, (playerCamera.transform.forward * vertical).z * Time.deltaTime * speed);

最新更新