如何在(向后方向)向 Unity 中的移动物体施加力

How to add force in (backward direction) to an moving object in Unity

我有一个以恒定速度向前移动的播放器,并且我在该对象上附加了一个刚体。所以我希望当玩家与其他对撞机相撞时,应该对玩家施加一个力使其向后移动。下面是我的播放器附带的脚本。 print 语句正在执行,这意味着 Trigger 函数正在运行并且刚体已附加到播放器,但 addforce() 函数不起作用。 请帮助我。

void OnTriggerEnter(Collider obj)
{
    if (obj.gameObject.name == "enemy")
    {
        if(gameObject.GetComponent<Rigidbody>())
        {
            print("force add");
            gameobject.getcomponent<RigidBody>().AddForce (-transform.forward * 10f * Time.deltaTime); 
        }
    } 
}

好的,首先尝试应用更高的值,可能力太低了,因为它乘以 Time.deltaTime,这是低值:

.AddForce (-transform.forward * 10000f * Time.deltaTime);

第二次检查,如果您在代码中的任何位置使用 transform.position 更改播放器的位置。 (如果是,请粘贴这部分代码)