在 Unity 中需要有关基于刚体的 FPS 控制器的帮助

Need Help in Rigidbody based FPS Controller in Unity

我正在学习 unity 并尝试创建一个 fps 游戏,但是在制作它的控制器时我遇到了一些问题,比如我想移动玩家,但是使用刚体而不是角色控制器,因为我希望它完全交互环境,但是当我尝试使用 addforce 让玩家移动时它工作正常但是当我停止按下移动键时即使玩家移动了一段时间,我想要更快速的移动,我应该使用 addForce 还是我应该使用速度移动播放器,当我停止按下移动按钮时,你能帮我找到反向移动吗?使用脚本而不是增加摩擦力

当您向 Rigidbody 施加力以移动它时,您有几个选项可以让刚体减速。

  1. 考虑将速度设置为零以立即停止运动
  2. 考虑限制 GameObject
  3. 的速度
  4. 考虑在刚体行进的相反方向增加额外的速度。

设置速度

if(stopPlayer)
{
    rigidbody.Velocity = new Vector3();
}

限制速度

Vector3 velocity =  rigidbody.Velocity;
velocity.x = Mathf.Clamp(velocity.x, -MaxVelocity,MaxVelocity);
velocity.y = Mathf.Clamp(velocity.y, -MaxVelocity,MaxVelocity);
velocity.z = Mathf.Clamp(velocity.z, -MaxVelocity,MaxVelocity);
rigidbody.Velocity = velocity;

在相反方向增加速度

Vector3 velocity =  rigidbody.Velocity;
rigidbody.AddForce(-velocity * SlowDownModifier * Time.fixedDeltaTime);