【问题标题】:Have fixed speed with AddForce?AddForce 有固定速度吗?
【发布时间】:2020-05-11 21:01:02
【问题描述】:

我想使用 AddForce 以固定速度移动对象,但是当我使用 AddForce 时,刚体的速度会逐渐增加。 每次按住输入时 AddForce 都会给我一个力,我按住移动对象的键越多,添加的力就越大,而我总是希望以相同的力移动对象。

【问题讨论】:

    标签: unity3d game-physics move physics rigid-bodies


    【解决方案1】:

    您可以直接设置速度,而不是在按住按钮的每一帧都添加加速力。因此,您可以访问刚体的速度 like in this example,而不是使用 AddForce()。

    【讨论】:

    • 但这涉及到物理问题。另一方面,我只想施加一个始终相等的力来以线速度移动刚体,但仅限于这种情况。 (例如低速行走的汽车或行走的人......他们的速度恒定,不会随着持续输入而增长)
    • 我不明白为什么速度对你不起作用。您希望刚体每帧都以恒定的速度移动,对吗?然后在FixedUpdate() 中使用此代码:object.GetComponent<Rigidbody>().velocity = new Vector(1,0,0); 如果您只想分配一次速度,只需在按住按钮时应用一次,当您停止按下按钮时将速度设置为 0。
    • 我只是想说,如果它受到与它移动的相反方向的推动,速度会受到影响吗?或者只要我按住输入按钮,即使它受到其他外力,刚体的速度也将始终如此?
    • 速度意味着恒定的速度,所以是的。只要您按住输入按钮,它就应该以恒定的速度移动。诸如碰撞之类的外力可能会改变刚体的路线,但您可以通过将 isKinematic 设置为 true 来避免这种情况。你可以在这里阅读更多内容:resetoter.cn/UnityDoc/ScriptReference/…
    • 不,我希望他以这样的速度对外力做出反应,所以可以,谢谢
    猜你喜欢
    • 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
    相关资源
    最近更新 更多