【问题标题】:Unity 2D jumping with Rigidbody velocity doesn't feel good使用刚体速度进行 Unity 2D 跳跃感觉不好
【发布时间】:2021-08-09 20:38:38
【问题描述】:

我正在使用经典的方式通过改变刚体的速度来使角色跳跃,下一张图片中的代码:Image

问题是有时当我落地时,我必须等待几帧才能跳跃,这并没有那么反应。而且我还想知道是否可以在 Update 方法中更改刚体的速度,如果不是,那么如何将 Update 中的输入与 FixedUpdate 中的物理链接。 当玩家到达地面时,我该怎么做才能使跳跃瞬间?增大地面检查半径并不能解决问题。还有是否可以给玩家一些余量,在落地前将玩家的跳跃输入保存几帧,但等到他落地后再执行?

【问题讨论】:

    标签: unity3d physics


    【解决方案1】:

    看起来isGrounded 变量稍后会发生变化。由于FixedUpdate 的调用次数与Update 不同,因此您会遇到这个问题。尝试将isGrounded 变量设置移动到Update 方法中,让它成为Update 中的第一行。

    应在FixedUpdate 中继续物理(增加不止一帧等的力)。但是,只触发一次物理函数 - 它可以在 Update 方法中,这没有问题。

    【讨论】:

    • 处理接地检查的一种方法是在玩家脚下添加传感器触发对撞机,然后在 OnTriggerEnter 和 OnTriggerExit 方法中简单地从列表中添加/删除对撞机。当列表为空时,表示播放器未接地。只需确保将其设置在与玩家不同的碰撞层上,并检查碰撞器是否只添加到列表中一次。
    猜你喜欢
    • 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
    相关资源
    最近更新 更多