繁体   English   中英

AddForce不起作用

[英]AddForce doesn't work

我在带有Input.GetMouseButton(0)条件的FixedUpdate()方法中具有以下代码:

public void playerAttack()
{
    RaycastHit hit;
    if (Physics.Raycast(player.transform.position, player.transform.forward, out hit, range)) //range = 7f
    {
        if (hit.rigidbody != null && hit.transform.tag == "Enemy")
        {
            Vector3 dir = new Vector3(hit.transform.position.x, hit.transform.position.y, hit.transform.position.z - 100f);
            hit.transform.GetComponent<Rigidbody>().AddForce(dir * weaponPush * Time.deltaTime); //weaponPush = 1f
        }
    }

}

敌方对象具有刚体,并且未选择isKinematic。 当我几乎在它前面并单击鼠标左键时,它仍然不会移动。

这不起作用可能是由于许多原因:

  • 您的刚体可以设置为运动
  • 您的刚体 阻力值可能太高
  • 您的对象可能会移动,但由于力Time.deltaTime而看不到它(可能是因为使用了Time.deltaTime
  • 如果您的对象位于[0.0f, 0.0f, 100.0f] ,则dir向量将为Vector3.zero

另外,我建议Time.fixedDeltaTimeFixedUpdate()使用Time.fixedDeltaTimeTime.deltaTime将返回相同的值,但是您还记得在“物理”框架中工作)。

希望这可以帮助,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM