首頁>Game>source

我有一个使用 rigidbody的角色 ,而我正在使用 AddForce() 使其移動.所以我做 限製對角線速度.是的,確實可行,但是我的問题是增加了例如爆炸力.因此,如果爆炸力很高,它將仍然限製播放器的速度.我應该使用哪種方式来組合 rb.velocity = Vector3.ClampMagnitude(rb.velocity, maxSpeed) 和一个 movement that limits diagonal speed .至少给我一个提示,怎麼办?

我這裏唯一的主要問题是我實現限製對角線運動的方式.我想通過不使用 properly working explosion force toward the player来改善它 因此, Vector3.ClampMagnitude() 將對播放器正常工作.因為当爆炸力影响時,播放器的夹紧幅度也会限製速度。

那麼任何人都可以提供一个線索,在不使用钳位幅度的情况下如何實現限製對角線運動?

我考虑過像這樣正常化举動:

AddExplosionForce()

但是我意識到我正在使用 Vector3 move = transform.right * x + transform.forward * z; move = move.normalized * Time.deltaTime * moveSpeed; .即使我限製了對角線速度,它也会越来越快,因為没有maxSpeed.請帮忙。

AddForce()
最新回復
  • 6月前
    1 #

    只需在AddExplosiveForce()函式中添加一个設置為true的isExploding布林並將更新分為两部分,一个是if(isExploding),第二个是else塊. / p>

    如果發生爆炸,請檢查刚體的速度大小,以查看其是否小於最大速度.如果是這樣,請將isExploding設置為false.如果不爆炸,則控製速度。

    您可能需要等待一幀,以在施加力後顯示速度(必须整合加速度),如果是這樣,只需確保在檢查速度钳之後施加爆炸力即可。

  • control:Godot 3X實現俯仰,偏航和侧倾的平稳運動
  • unity:為什麼我不能在此指令碼中引用" targetVelocity"變數?