如何解决Unity 中基于刚体的 FPS 控制器需要帮助
我正在学习统一并尝试创建一个 fps 游戏,但是在制作它的控制器时我遇到了一些问题,比如我想移动玩家,但是使用刚体而不是角色控制器,因为我希望它完全交互环境,但是当我尝试使用 addforce 让玩家移动时它工作正常但是当我停止按下移动键时,即使玩家移动了一段时间,我想要更快速的移动,我应该使用 addForce 还是应该移动玩家通过使用速度,当我停止按下移动按钮时,你能帮我找到反向移动吗,使用脚本而不是增加摩擦
解决方法
当您向 Rigidbody
施加力以移动它时,您可以通过多种选择来减慢该刚体的速度。
- 考虑将速度设置为零以立即停止移动
- 考虑限制
GameObject
的速度 - 考虑在刚体行进的相反方向上增加额外的速度。
设置速度
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);
velocity.z = Mathf.Clamp(velocity.z,MaxVelocity);
rigidbody.Velocity = velocity;
向相反方向添加速度
Vector3 velocity = rigidbody.Velocity;
rigidbody.AddForce(-velocity * SlowDownModifier * Time.fixedDeltaTime);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。