【问题标题】:How to add force in (backward direction) to an moving object in Unity如何在 Unity 中向(向后方向)的移动对象添加力
【发布时间】:2019-01-20 11:03:22
【问题描述】:

我有一个以恒定速度向前移动的玩家,我在该对象上附加了一个刚体。所以我希望当玩家与其他对撞机撞击时,应该对玩家施加一个力,使其向后移动。下面是我的播放器附带的脚本。打印语句正在执行,这意味着 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); 
        }
    } 
}

【问题讨论】:

    标签: c# unity3d rigid-bodies


    【解决方案1】:

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

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

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

    【讨论】: