【问题标题】:(Unity) How do I add a force to a specific point on an object?(Unity)如何在对象上的特定点添加力?
【发布时间】:2019-03-14 10:44:16
【问题描述】:

对于我在 Unity 中制作的游戏,我需要对一个对象施加两个力:首先,我需要一个推动对象向前的力,我使用以下代码来执行此操作:

    void FixedUpdate()
{
    if(Input.GetKey("a"))
    {
        Thruster.AddRelativeForce(0, -Thrustforce * Time.deltaTime, 0, ForceMode.VelocityChange);
    }
    if(Input.GetKey("z"))
    {
        Thruster.AddRelativeForce(0, Thrustforce * Time.deltaTime, 0, ForceMode.VelocityChange);
    }
}

现在我还想添加一个侧向力,但这需要在一个非常具体的地方才能让车辆感觉就像我想要的那样。我无法在互联网上找到任何关于此的内容。所以问题是:我如何在物体的特定位置施加这种横向力?

在 Unity 和编码方面我仍然是初学者,所以请说明您将采取哪些步骤。

提前谢谢你!

【问题讨论】:

标签: c# unity3d game-physics


【解决方案1】:

在问问题之前上网查一下会得到这样的结果:

AddForceAtPosition()

【讨论】:

  • 是的,我发现了,但我并不真正了解如何使用它。这就是我在这里问的原因。不管怎样,谢谢你的建议
  • 你到底有什么不明白的?您只需使用第一个参数指定力矢量,使用第二个参数指定施加力的位置。
  • ...如果没有任何特殊情况需要瞬时VelocityChange,我建议大部分时间使用ForceMode.ForceForceMoce.Acceleration