【问题标题】:How can I set a constant speed with AddForce of the rigidbody?如何使用刚体的 AddForce 设置恒定速度?
【发布时间】:2020-05-09 15:37:46
【问题描述】:

我想用 AddForce 移动一个对象,但我不希望它的速度急剧增加,没有限制,而是用一个浮点值设置的速度限制移动。

【问题讨论】:

    标签: c# unity3d game-physics rigid-bodies


    【解决方案1】:

    你或许可以使用Vector3.ClampMagnitude:

    rigidbody.AddForce(...);
    
    float maxSpeed = 10;
    rigidbody.velocity = Vector3.ClampMagnitude(rigidbody.velocity, maxSpeed);
    

    别忘了在FixedUpdate() 里面玩而不是Update() 里面的力量

    【讨论】:

    • 感谢您的回复。以这种方式影响刚体.速度。所以我在物理上遇到了麻烦,我只希望在输入时使用 addforce 时我的刚体不会超过我的浮动所指示的速度。因为如果我正常使用它,我会继续发力,并且刚体的速度会无限增加
    【解决方案2】:

    您可以使用钳位来限制您的值;

    https://docs.unity3d.com/ScriptReference/Mathf.Clamp.html

    【讨论】:

    • 我应该在哪里应用这个限制?我不认为我可以将它应用于我在刚体上使用的力。有没有办法总是将具有相同值的力发送到刚体,使其始终以相同的速度移动?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-13
    • 1970-01-01
    相关资源
    最近更新 更多