如何在Unity中向移动对象(向后)施加力

时间:2019-01-20 11:03:22

标签: c# unity3d rigid-bodies

我有一个正在以恒定速度向前移动的播放器,并且已经在该对象上附加了刚体。因此,我希望玩家在与其他对撞机撞击时向其施加力使其向后移动。下面是我的播放器附带的脚本。 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); 
        }
    } 
}

1 个答案:

答案 0 :(得分:0)

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

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

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

相关问题